new_width = old_width*(new_height/old_height);
가로 세로 비율 유지하기
Phaser에서 걱정할 필요가 없습니다.스프라이트의 높이나 너비를 변경하면 스케일 객체 속성이 업데이트됩니다. 예를 들어 스프라이트의 너비를 변경하면 scale.x 속성이 변경됩니다.
너비를 변경하면 scale.x를 scale.y로 복사합니다.
mySprite.scale.y=mySprite.scale.x;
높이를 변경하면 반대로 하면됩니다.
mySprite.scale.x=mySprite.scale.y;
실제 샘플 코드 입니다.
var StateMain = {
preload: function () {
game.load.image("doughnut","images/doughnut.png");
},
create: function () {
this.makeDoughnuts();
game.input.onDown.add(this.makeDoughnuts, this);
},
makeDoughnuts:function()
{
for (var i = 0; i < 5; i++) {
var doughnut=game.add.sprite(game.world.randomX,game.world.randomY,"doughnut");
doughnut.width=game.rnd.integerInRange(50, 150);
//when we change the width, we automatically change the scale.x
//setting the scale.y to scale.x will make the
//object proportional
doughnut.scale.y=doughnut.scale.x;
}
},
update: function () {
}
}
댓글 없음:
댓글 쓰기