Pygame以固定的路径以可变的速度滚动

时间:2015-02-24 22:59:48

标签: python scroll pygame custom-scrolling

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

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

我计划调整从此示例代码中获取的代码 PyScroll

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

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

这似乎是一种奇怪的做法吗?有没有办法跟踪由时钟技巧和变速输入引起的时间差异的矢量?

1 个答案:

答案 0 :(得分:0)

我还在接触SO。我想我正在寻找更多的概念性答案而不是代码。

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

使用当前速度,最后一帧与dt组合我可以给出行进距离(新x坐标)。沿着直道行驶时很容易。

当英雄精灵到达角落时,我使用了trig和一个弧长方程来更新x y坐标。

将代码放入按键功能(def handle_input)是不对的。它在英雄类的def更新中起作用。