更新屏幕外的位置和位置

时间:2012-04-17 18:21:16

标签: android eclipse opengl-es

我想展示汽车在道路上的运动。我有一个包含位置的文本文件,我通过每秒更新一个汽车的位置来构建机芯。小时说平原是(200,200)。现在我应该怎么做这个屏幕之外的位置?我怎么能在那里跟我的车? 我应该设置相机还是什么? 顺便说一下,我的应用程序是2D。

1 个答案:

答案 0 :(得分:1)

根据我的经验,在2D编程中没有设置相机的实际概念,但我可能错了。你必须自己做,创建一个相机类等.....

我认为最终会发生的事情是汽车将保持在屏幕的中心,而其下的所有东西都会移动。取决于你想要实现的目标。

所以,如果你的车以20公里/小时的速度向东北移动,那么实际上不要移动汽车,让汽车下的所有东西以20公里/小时的速度向西南方向移动(或者每帧出现多少像素)

如果你想跟随这辆车的话。如果你想把“相机”放在车上,只要它超出界限,你可能不得不将风景和汽车移向屏幕中心。

编辑:我假设汽车将成为主要焦点?所以它应该始终位于屏幕的中心。

游戏中的所有对象都应该有velocitypositionposition告诉您当前对象的位置,velocity告诉您每帧应移动多少个x和多少个y。所以你要说的每一帧position = position + velocity

非车载物体可以随意离开屏幕,而无需相机跟随它们,所以让它们离开。保持汽车居中,并根据汽车调整所有其他物体的速度。

例如:

Car's velocity (3, 0) ---> means it's moving right in the straight line at 3 pixels per frame

Object 1 velocity (4, 0) ---> means it's also moving right in a straight line but 4 pixels per frame

物体1的速度必须根据汽车的速度自行调整。所以说:

object1.position = object1.position + (object1.velocity - car.velocity)

对象1的新速度为(1,0),所以它的速度比汽车快一个。

如果汽车获得速度让我们说(5,0),那么对象1将会向后移动1。