我是Phaser的菜鸟,正在研究Flappy Bird。我尝试建立一个无限的地面,我尝试了tilePosition,但是它不起作用。
var ground;
function preload(){
game.load.image('ground', '/assets/groud.png');
}
function create(){
ground = game.add.tileSprite(0, 480, 'ground');
}
function update(){
ground.tilePosition.x -= 1;
}
但这不起作用,有人可以帮我吗?
最佳答案
constructor for TileSprite需要参数x, y, width, height, key
(和frame
,但仅适用于spritesheets,不适用于使用image
的参数)。
因此,我认为您忘记了width和height参数,导致Phaser将“地面”视为宽度。这可能会在JavaScript控制台上引发错误消息。在Chrome中按CTRL + Shift + J,在FireFox中按F12,然后在控制台中查看是否有任何消息。
另外,我不知道您使用的分辨率是什么,但是参数480
是y位置,也许这会导致TileSprite位于屏幕下方,因此它不可见?
也许试试看:
function create(){
ground = game.add.tileSprite(0, 100, game.width, 50, 'ground');
}