0

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

4

1 回答 1

1

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

我认为最终会发生的是,汽车将保持在屏幕的中心,而它下面的所有东西都会移动。取决于您要达到的目标。

因此,如果您的汽车以 20 公里/小时的速度向东北移动,请不要真正移动汽车,让汽车下方的所有东西以 20 公里/小时的速度向西南移动(或每帧多少像素)

这是如果您想跟随汽车。如果您想在汽车越界时将“相机”居中,您可能必须将景观和汽车移向屏幕中心。

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

游戏中的所有对象都应该有 avelocity和 a positionposition告诉你对象当前在哪里,告诉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),因此它的移动速度比汽车快 1。

如果汽车加速到假设 (5, 0),那么对象一似乎向后移动了 1。

于 2012-04-17T18:33:48.663 回答