이것은 phaser.js의 게임에서 간단한 테스트 사례입니다. 볼이 화면 상단으로 이동하고, 충돌하고, 튀어 오르고, 조건 때문에 멈추고, 스프라이트의 y 값과 속도를 설정하여 더 이상 떨어지지 않게합니다.Phaser Game Framework - 조건부에도 불구하고 2 개의 업데이트 루프에서 Sprite.y 값이 변경됨
그러나 다음 업데이트 루프에서, CONSOLE.LOG 2.
에 다시 y 값이 증가하고, 카운트 증가 - 공 y는 다음 437,442,445입니다 이해가 안 (440)에 남아 내려으로 ball.y가 440을 두 번 넘는 방식은 전체 실행 코드입니다. 조건부에서 바운스를 0으로 설정하면 효과가 없습니다. 그것은 콘솔이 아닙니다. 브라우저의 로그는 페이저 업데이트와 동기화되지 않습니다. 왜냐하면 카운트 변수가 조건부를 두 번 입력했기 때문입니다.
var mainState = {
preload: function() {
game.load.image('ball', 'assets/ball.png');
},
create: function() {
game.physics.startSystem(Phaser.Physics.ARCADE);
game.world.enableBody = true;
ball = game.add.sprite(180, 440, 'ball');
ball.body.bounce.setTo(1);
ball.body.allowGravity = false;
ball.body.collideWorldBounds = true;
game.physics.arcade.moveToXY(ball, 160,10,350); ballstop = false;
count = 0;
},
update: function() {
console.log("ball.y " + ball.y);
if (ball.y > 440) {
ball.body.bounce.setTo(0);
ball.body.velocity.x = 0;
ball.body.velocity.y = 0;
ball.y = 440;
count = count + 1;
}
},
};
var game = new Phaser.Game(360, 640);
game.state.add('main', mainState);
game.state.start('main');
는 문제 – paulito
그냥 어떤 임의의 추측을 볼 크롬 개발 도구의 콘솔에서 https://phaserballtest.netlify.com/ .Look을 실행중인 update()'? 가속 값이 '0'으로 설정되어야합니까? –