【发布时间】:2020-07-04 14:16:53
【问题描述】:
我正在尝试使用 Phaser 制作游戏,并尝试使用您通常用于 Phaser 的常用键盘输入,但它们并没有让我的精灵移动。这是我的移相器代码(没有移相器键盘输入):
const gameState = {};
const config = {
type: Phaser.AUTO,
width: 850,
height: 650,
backgroundColor: 0xa362d1,
physics: {
default: 'arcade',
arcade: {
gravity: { y: 200 },
enableBody: true,
}
},
scene: {
preload,
create,
update
}
};
var game = new Phaser.Game(config);
function preload (){
this.load.image('boy', 'boy.png')
}
function create(){
gameState.boy = this.add.sprite(400, 550, 'boy').setScale(0.75)
}
function update (){
}
document.addEventListener('keydown', keyDownHandler, false);
document.addEventListener('keyup', keyUpHandler, false);
var rightPressed = false;
var leftPressed = false;
var upPressed = false;
var downPressed = false;
function keyDownHandler(event){
if (event.keyCode == 39){
rightPressed = true;
}
else if (event.keyCode == 37){
leftPressed = true;
}
if (event.keyCode == 40){
downPressed = true;
}
else if (event.keyCode == 38){
upPressed = true;
}
}
function keyUpHandler(event){
if (event.keyCode == 39){
rightPressed = false;
}
else if (event.keyCode == 37){
leftPressed = false;
}
if (event.keyCode == 40){
downPressed = false;
}
else if (event.keyCode == 38){
upPressed = false;
}
}
function draw(){
ctx.clearRect(0, 0, canvas.width, canvas.height);
if(rightPressed){
playerX += 5;
}
else if(leftPressed) {
playerX -= 5;
}
if(downPressed) {
playerY += 5;
}
else if(upPressed) {
playerY -= 5;
}
ctx.drawImage(img, playerX, playerY);
requestAnimationFrame(draw);
}
【问题讨论】:
标签: javascript phaser-framework