我正试图找到一种干净的方法来“移动画布元素的相机”。
这是我的原型游戏(侧卷轴)。我很乐意认为有一个更好的解决方案,就是移动整个节点集来模拟移动的“相机”。
几乎可以肯定已经读过一个简单的操作方法(使用偏移?)但事实上我没有发现任何类似的东西开始引起怀疑......我是否想过要阅读它??
感谢帮助我澄清...... Ĵ
答案 0 :(得分:8)
据推测,您每秒重绘整个游戏场景30次(或多或少)
您需要重绘整个游戏场景,但首先将Canvas上下文翻译一些偏移量。
context.translate(x,y)
正是您想要的。您需要了解使用该方法以及save()
和restore()
方法。
当您翻译上下文时,之后绘制的所有内容都会移动该数量。
所以你不断使用drawImage(badguy,50,50)
以50,50画出一些东西(可能是一个敌人)。然后玩家移动,将x
的{{1}}更改为-1(因为玩家向右移动)而不是0.你仍然使用命令translate
绘制敌方精灵,但是当你绘制它时,敌人就会显示为49,50,因为drawImage(badguy,50,50)
命令会在绘制之前移动所有内容。
当然,当你进入表演时,你会想要确保你只画出可以在屏幕上看到的东西!如果你的水平远低于context.translate(-1,0)
的水平,你不想再以50,50绘制物体,只有那些与可视区域相交的物体。