使用Phaser从spritesheet加载sprite时遇到问题

时间:2016-08-11 14:59:44

标签: javascript sprite game-engine phaser-framework

我正在努力重新创建一个突破克隆来帮助我学习Phaser(遵循jsbreakouts.org的整体设计)。无论如何,我已经设置了开始屏幕。从开始屏幕开始,我可以毫无问题地转换到游戏状态。在我的游戏状态下,我可以毫无问题地加载背景和球拍。拨片按预期响应鼠标输入。

但球由于某种原因没有加载。球来自spritesheet。表中的每个球是16x16,其中有5个。我甚至无法加载其中一个,更不用说动画了它们。

球spritesheet与paddle在同一目录中。我在网上查看了其他代码,据我所知,我做得对。然而,它没有用。

我做错了什么?

这是我的游戏状态代码:

import-csv "C:\qt\users_add.csv" | Group-Object Group | % {
    # Foreach Group, get ADUser object for users and add members
    $users = $_.Group | % { Get-ADUser $_.users }
    Add-ADGroupMember  $_.Name -Member $users
}

2 个答案:

答案 0 :(得分:0)

我回过头来看过我制作的一些游戏,我的代码和你的代码之间唯一不同的就是当你声明spritesheet时。

你声明你的球spritesheet:

game.load.spritesheet('ballsheet', './assets/balls.png', 16, 16, 5);

我认为最后你不需要5。你可以告诉Phaser每个精灵的宽度和高度,它会自动将它分成正确数量的精灵,假设spritesheet上的精灵之间没有间隙。

在加载瓷砖spritesheet时,您似乎已经这样做了。您刚刚声明了每个图块的宽度和高度,并且不需要指定spritesheet中有多少个精灵。

这是我能想到的唯一可能导致问题的原因。

我希望它能以某种方式帮助你。

答案 1 :(得分:0)

我建议在Spritesheets上使用纹理图集。它们提供更好的性能并且更易于使用,因为您不需要处理设置框架维度的废话。

What is Texture Atlas

Create Texture Atlas

Preloading Texture Atlas (actually any Phaser assets)

var s = new Sprite(game, 'key', 'frame')