我是新来的游戏开发,我正在尝试在Godot引擎上构建我的第一个Pong游戏。 我正在遵循的教程如下。
简单的乒乓游戏
我不明白的是这一行:
ball_pos += direction * ball_speed * delta
如何计算新的球位置?
据我所知, delta
是自上last _process()
调用以秒计的时间(float)。
另外,为什么方向vector设置为(1.0, 0.0)
?
我正在寻找一个清晰的解释,因为教程没有解释太多。 谢谢。
+=
操作符将右侧操作数添加到左侧操作数。 所以这条线相当于
ball_pos = ball_pos + direction*ball_speed*delta
所以direction*ball_speed*delta
是新位置相对于旧位置的偏移量。 这是在这个框架中球行进的距离。 direction*ball_speed
是球的速度结合其方向,所以它是一个向量。 方向是一个所谓的单位vector,所以它的长度是一个。 这代表球的速度(some distance-unit)/second
。 如果乘以自上次更新以来所经过的时间,则此帧中的位置发生更改。
要了解更多关于这个,我建议研究线性代数的基础知识。
主要是基于我所看到的类似的variables和公式,但ball_pos
可能是一个向量(所以它有一个direction
,因此乘以direction
来得到它的方向)。 ball_speed
可能是速度,所以你需要知道它的行进/经过时间有多远, delta
可能是计算之间的经过时间。
那个+=
基本上是说我在哪里,我进了什么方向,我在前一个时间框架上走了多快,现在我到哪里去了。
方向设置为(#, 0)
因为大概不是x,y,z方向,而只是x方向,基本上它是面向左或右(或者上下左右,取决于你在寻找什么动作)。