[英]a strange behavior in Phaser with javascript
首先
我根本不是游戏开发的初学者-而是专门从事网络游戏开发的初学者
我从Phaser开始,因为它看起来不错并且针对手机游戏进行了优化
反正..
我的游戏有一个奇怪的行为-我放了一个矩形并试图移动它(当我调试X轴时,它已经正确更改了,但是我看不到矩形移动了!)
我的密码
var game = new Phaser.Game(window.innerWidth,window.innerHeight,Phaser.AUTO);
var colors = ["#FF0000" , "#00FF00" , "#0000FF" , "#FFFF00" , "#00FFFF" , "#FFFF00"];
var lst;
var hlprs = [];
var gameState = {
preload: function () {
this.game.stage.backgroundColor = "#FFFFFF";
},
create: function () {
for (var i = 0 ; i < 8 ; i++)
{
hlprs[i] = new Phaser.Rectangle((i*200),0,100,20);
hlprs[2*i + 1] = new Phaser.Rectangle((i*200),window.innerHeight - 20,100,20);
game.debug.geom(hlprs[i] , colors[Math.floor((Math.random() * 6))]);
game.debug.geom(hlprs[2*i + 1] , colors[Math.floor((Math.random() * 6))]);
}
},
update: function ()
{
moving();// it calls moving function and X axis is changes but (the rectangle does not move !!!)
}
};
function moving()
{
for (var i = 0 ; i < 8 ; i++)
{
hlprs[i].offset(-1,0);
hlprs[2*i + 1].offset(-1,0);
}
}
game.state.add('GameState' , gameState);
game.state.start('GameState');
如果不进行测试,我会猜测会发生以下情况:创建一堆形状,并对每个形状进行一次game.debug.geom()
调用。 同时,形状确实开始移动,但是由于您再也不会调用game.debug.geom()
了,所以您再也看不到任何移动。
如果您打算使用game.debug
方法,它们通常应该放在您状态的render()
方法内部render()
每帧将被调用一次)。
请注意,调试方法也将用于调试。 显示形状的正确方法是制作一个精灵或图像(在这种情况下,您将不必手动更新任何东西,因为Phaser会处理它)。
由于update()
函数调用moving()
你可能希望你的game.debug
内命令moving
function moving()
{
for (var i = 0 ; i < 8 ; i++)
{
hlprs[i].offset(-1,0);
hlprs[2*i + 1].offset(-1,0);
// update here
game.debug.geom(hlprs[i] , colors[Math.floor((Math.random() * 6))]);
game.debug.geom(hlprs[2*i + 1] , colors[Math.floor((Math.random() * 6))]);
}
}
这是一个演示: https : //jsfiddle.net/user2314737/J5fUE/253/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.