-1

我正在尝试沿着固定路径滚动背景(想象一辆自行车绕着赛车场 - 2x 直道和 2x 180 度弯道),屏幕中央有一个英雄/精灵。

我无法弄清楚如何使用变速输入来做到这一点?(这阻止我创建 x 和 y 坐标列表 - 我想??)

我计划调整取自此示例代码 PyScroll的代码

此代码使用确定背景移动方式的按键:例如。右键按下 = 当前位置(x 或 y 坐标)+ 速度 * 时间差。这给出了新的位置。其中速度以每秒像素为单位,时间差为每帧的时钟滴答。

目前我正在考虑一组规则来帮助确定代码中的下一个 self._position 值。例如,如果背景在某个位置,那么英雄必须在直线上(仅添加 y)或在拐角的起点(然后一个半圆形方程路径开始)。

这似乎是一种奇怪的做法?有没有办法考虑到由时钟和变速输入引起的时间差异的向量?

4

1 回答 1

0

我仍然在处理 SO。我想我正在寻找更多的概念性答案而不是代码。

我通过使用clock.tick(自上一帧以来经过的时间)来创建一个迷你平均速度来解决它。(dt =时间差)

使用当前速度,最后一帧结合 dt 我可以给出行驶距离(新的 xy 坐标)。沿直线行驶时很容易。

当英雄精灵到达角落时,我使用三角和弧方程的长​​度来更新 xy 坐标。

将代码放入按键函数 (def handle_input) 是错误的做法。它在英雄类的 def 更新中起作用。

于 2015-03-21T11:00:10.617 回答