4

我正在尝试找到一种干净的方式来“移动画布元素的相机”。

这是我的原型游戏(横向卷轴)。我很想有一个比移动整个节点集来模拟移动的“相机”更好的解决方案。

几乎可以肯定已经阅读了一个简单的操作方法(使用偏移量?)但我没有找到类似的东西这一事实开始引起怀疑......我是否想象过阅读它!?

感谢帮助我澄清... J

4

1 回答 1

10

大概你每秒重绘整个游戏场景 30 次(或多或少)

您需要重新绘制整个游戏场景,但首先将 Canvas 上下文平移一些偏移量。

context.translate(x,y)正是你想要的。你会想了解它的用法以及save()andrestore()方法。

当您翻译上下文时,之后绘制的所有内容都会移动该数量。

所以你经常在 50,50 处使用drawImage(badguy,50,50). 然后玩家移动,这会将 of 更改xtranslate-1(因为玩家向右移动)而不是 0。您仍然使用命令绘制敌人精灵drawImage(badguy,50,50),但是当您绘制它时,敌人会出现,就好像它在49,50 因为context.translate(-1,0)命令在绘制之前移动所有内容。

当然,当您开始表演时,您会想要确保您只绘制可以在屏幕上实际看到的东西!如果您的水平远远低于context.translate(-2000,0),您不想再在 50,50 处绘制对象,只需要与可视区域相交的对象。

于 2011-11-28T06:02:32.640 回答