我想展示汽车在道路上的运动。我有一个包含位置的文本文件,我通过每秒更新一个汽车的位置来构建机芯。小时说平原是(200,200)。现在我应该怎么做这个屏幕之外的位置?我怎么能在那里跟我的车? 我应该设置相机还是什么? 顺便说一下,我的应用程序是2D。
答案 0 :(得分:1)
根据我的经验,在2D编程中没有设置相机的实际概念,但我可能错了。你必须自己做,创建一个相机类等.....
我认为最终会发生的事情是汽车将保持在屏幕的中心,而其下的所有东西都会移动。取决于你想要实现的目标。
所以,如果你的车以20公里/小时的速度向东北移动,那么实际上不要移动汽车,让汽车下的所有东西以20公里/小时的速度向西南方向移动(或者每帧出现多少像素)
如果你想跟随这辆车的话。如果你想把“相机”放在车上,只要它超出界限,你可能不得不将风景和汽车移向屏幕中心。
编辑:我假设汽车将成为主要焦点?所以它应该始终位于屏幕的中心。游戏中的所有对象都应该有velocity
和position
。 position
告诉您当前对象的位置,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。