【发布时间】:2015-11-30 22:11:48
【问题描述】:
我正在使用 Phaser.js 创建地图(tileSprite)并在其上放置一些精灵,因为并非所有精灵都能进入,我正在使用相机左右平移。
我希望用户单击键盘键(左或右)或方向按钮精灵来连续平移相机,直到用户释放控件。
我已经实现了类似于this example 的键盘平移,我按住一个键,相机移动/平移(在事件中每边 10 个像素)并在按键释放时停止。
但是,当我尝试使用 2 个精灵按钮实现相同的功能时,每个按钮仅触发 1 个事件,并且每次点击仅平移相机 10 像素。我需要一直开火,直到我松开钥匙。
var panRightButton = game.add.button(800, 5, 'right_pan_btn', onClickAction, this);
panRightButton.onInputOver.add(onButtonOver, this);
panRightButton.onInputOut.add(onButtonOut, this);
panRightButton.onInputDown.add(panScreenRight, this);
function panScreenRight() {
game.camera.x += 10;
}
我尝试使用布尔标志 (isPanning),如果我单击按钮,该标志将变为真,而在释放时变为假。并在game.camera.x += 10; 上有一个while 循环,但它只是减慢并停止了脚本。
function onClickAction() {
isPanning = true;
}
function onButtonOut() {
isPanning = false;
}
function onButtonUp() {
isPanning = false;
}
function panScreenLeft() {
if (isPanning) {
game.camera.x -= 10;
}
}
【问题讨论】:
标签: javascript phaser-framework