1

我对游戏开发有点陌生。我现在将 Phaserjs 用于我的 html5 游戏。我想将超出边界一侧的精灵部分带到另一侧。我已经浏览了Phaser 中的图像文档。我不确定如何进行。考虑复制该部分并粘贴到画布上,但游戏对象引用将不一样。此外,复制功能有其限制(从图像左上角复制)。

我浏览了Phaser 示例。但没有得到任何线索。

任何帮助表示赞赏。谢谢。

4

2 回答 2

0

如果我正确理解您的问题,您可以尝试以下解决方案:

  • 制作一个画布宽度 + 原始精灵宽度的 PNG
  • 把你的原始精灵放在你的 png 的两端(所以它会在你的 PNG 中是sprite+ blank space+sprite
  • 像任何其他精灵一样将其添加到您的游戏中

现在,如果您将精灵部分移出屏幕,它的副本将在完全相同的 y 点移入屏幕。

可能有一个更好的解决方案可以处理 spritesheet 动画和碰撞,但这似乎比切割图像的一部分并移动它们更简单。

于 2014-09-09T18:21:00.420 回答
0

这是 jsfiddle:http: //jsfiddle.net/m8nj4cjr/

即使我是 Phaser-framework 的新手,它也使用画布渲染器。我希望画布示例对您有所帮助。

您需要处理两种情况:

  1. Sprite 部分超出画布边界
  2. Sprite 完全超出画布范围

让一个精灵向右移动。如果条件sprite.x + sprite.width > canvas.width为真,则精灵部分超出范围。在画布的左端渲染部分精灵超出范围。context.rect(sprite.x - canvas.width, sprite.y, sprite.width, sprite.height);

当精灵完全超出右端边界sprite.x > canvas.width时,将其位置 x 设置为 0。sprite.x = 0

于 2014-09-09T19:24:22.850 回答