Phaser Js 에서 오브젝트 크기 조절하기

모바일의 부상으로, 나는 더 자주 객체의 크기를 조정해야한다는 것을 알게되었습니다. 이것은 화면 크기의 차이를 보완하기위한 것입니다. 높이나 너비와 같은 속성 하나를 변경하는 것은 쉽지만 이미지 비율이 비례해야하는 것이 더 좋으므로 다음과 같은 공식이 필요합니다.
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 () {
 
    }
 
}

댓글 없음:

댓글 쓰기