这篇文章既然是一片“番外篇”,那我们就偏离一点主线,来讲一下如何修改游戏代码。
首先重温一下Settings类:
class Settings:
ticks_per_sec = 60 # 每秒刷新的次数
sector_size = 16 # 区块的大小
walking_speed = 5.0 # 走路的速度
gravity = 20.0 # 重力的大小
max_jump_height = 1.0 # 跳跃的高度
jump_speed = math.sqrt(2 * gravity * max_jump_height) # 根据跳跃的高度计算出跳跃的速度
terminal_velocity = 50 # 下降时最快的下落速度
player_height = 2 # 玩家的高度
faces = [
( 0, 1, 0),
( 0,-1, 0),
(-1, 0, 0),
( 1, 0, 0),
( 0, 0, 1),
( 0, 0,-1),
] # 与一个方块相邻的方块的相对坐标
texture_path = 'images/textures' # 这里也可以替换成你自己的路径
先来做一个简单的修改好吧,玩家化身“超人”,拥有极快的走路速度以及极强的跳跃能力:
class Settings:
...
walking_speed = 15.0
...
max_jump_height = 3.0
感觉怎么样,现在我们先把走路速度和跳跃高度都改回去。接下来我们来修改一下区块大小:
class Settings:
...
sector_size = 1
运行一下,这样的结果你猜到了吗?如果不理解为什么会出现这样的结果可以再看一遍第十二篇中的三个函数哦。
最后我们再来做一个修改,还记得这一段代码吗:
class Window(...):
...
def on_key_press(...):
...
elif symbol == pyglet.window.key.SPACE:
# 这是为了防止二段跳
if self.dy == 0:
self.dy = Settings.jump_speed
如果我们去掉if self.dy == 0:的判断,允许二段跳,又会发生什么有趣的现象呢?这下可以不断按空格一下子跳得特别高,就算“失足”掉进虚空也能跳回来了。
这篇文章对代码做了一些简单的修改,大家对代码的理解应该也更加深刻了。如果有什么不懂的地方可以在评论区讨论,记得点个赞哦~



