我正在制作一个游戏,我正在寻找一些关于基本相机跟踪算法的帮助。
- 假设我们有一个大小为 320 x 480 的窗口。
- 我们还有一个坐标为 x,y 的玩家。
- 用户可以使用箭头键移动播放器。
- 相机跟随玩家坐标。[相机坐标是屏幕所在的位置]。所以 camera.x=player.x 和 camera.y=player.y
现在我遇到的问题是:当玩家到达房间的尽头时,我可以看到房间的“外面”。因此,理想情况下,摄像机在接近房间尽头时应该停止移动。
我不确定如何有效地解决这个问题,这似乎是游戏中的一个常见功能。任何帮助都会很棒。
我的代码,它不起作用..真的,视图随机变得古怪*:
#bi_currentwindow.layout.x = -(top left x corner of window)
#bi_currentwindow.layout.y = -(top left y corner of window)
#bi_bg_size= total room (or world) size
diff=(object.x-Window.size[0]/2)
if diff<0:
bi_currentwindow.layout.x = object.x+diff
else:
diff=(object.x+Window.size[0]/2)-bi_bg_size[0]
if diff<0:
bi_currentwindow.layout.x = -object.x+Window.size[0]/2.0
diff=(object.y-Window.size[1]/2)
if diff<0:
bi_currentwindow.layout.y = diff+Window.size[1]/2
else:
bi_bg_size=centralVarTransfer.bi_bg_size
diff=bi_bg_size[1]-(object.y+Window.size[1]/2)
if diff>0:
bi_currentwindow.layout.y = -object.y+Window.size[1]/2.0