Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Phaserio动态精灵创建_Javascript_Html_Canvas_Meteor_Phaser Framework - Fatal编程技术网

Javascript Phaserio动态精灵创建

Javascript Phaserio动态精灵创建,javascript,html,canvas,meteor,phaser-framework,Javascript,Html,Canvas,Meteor,Phaser Framework,我正在使用PhaserIO和Meteor来创建一个多人html5游戏,遇到了一个我在制作网络原型时无法解决的问题。首先,相关代码(也可作为: if(Meteor.isClient){ var游戏, 中流砥柱,, 主流化, 字符数据; Template.game.game=函数(){ characterData=Character.find().fetch(); 如果(!mainStateInitialized) { game=新的Phaser.game(500600,Phaser.AUTO,'g

我正在使用PhaserIO和Meteor来创建一个多人html5游戏,遇到了一个我在制作网络原型时无法解决的问题。首先,相关代码(也可作为:

if(Meteor.isClient){
var游戏,
中流砥柱,,
主流化,
字符数据;
Template.game.game=函数(){
characterData=Character.find().fetch();
如果(!mainStateInitialized)
{
game=新的Phaser.game(500600,Phaser.AUTO,'gameScreen');
createMainState()
}     
}
}
函数createMainState()
{
主流={
精灵:空,
playerLastFrame:characterData.length,
playerCurrentFrame:null,
charData:characterData,
预加载:函数(){
this.sprites=game.add.group();
game.stage.disableVisibilityChange=true;
game.load.image('hello','resources/hello.png');
},
创建:函数(){
$.each(字符数据、函数(索引){
var sprite=mainState.sprites.create(this.x,this.y,'hello');
sprite.angle=this.angle;
});
},
更新:函数(){
this.charData=characterData;
this.player当前帧=this.charData.length;
如果(this.playersLastFrame>this.playersCurrentFrame){
//todo:删除左侧的播放机
}
else if(this.playersLastFrame
这个原型的想法是在画布上为数据库中的每个帐户显示一个精灵。我正在测试的主要功能包括:

  • 无缝地动态添加精灵/玩家数据(因为所有适当的多人在线游戏都应该能够。这将最终为适当的加入/离开系统铺平道路)

  • 以及如何创建高效的数据包

  • 现在,我遇到了一个问题,当玩家创建一个新帐户时,动态创建一个新的精灵。大约75%的情况下,当玩家创建新帐户时,什么都不会发生。Meteor正确地按下了我可以查询的字符数据,并且
    mainState.sprites
    正确地显示了sprite数据。但是,画布上不会渲染任何内容

    另外25%的时间,它工作正常。此外,如果我有代码中断点,就我所知,它在100%的时间内都能工作

    所以,这里显然发生了一些断断续续的事情,但我不知道问题出在哪里。在更新循环期间添加精灵时,是否缺少某些内容?有没有更好的办法


    我在Nitrous.io上有我的代码,因此我可以运行一个localhost实例,如果它有助于解决问题的话。问题是我没有设置PlayerLastFrame=PlayerCurrentFrame

    考虑到这是一个基本的循环/比较结构,我现在觉得很傻。last=回路末端的电流

    叹息:(