12.6.2 让飞船"停不下来"的移动魔法
当按键变成"粘性"的奇妙体验
想象一下:你按着右方向键不放,飞船就像被施了魔法一样持续向右滑行——这不是卡顿,而是我们精心设计的"持续移动"特效!
要实现这种丝滑体验,我们需要玩点键盘事件的小把戏。
移动标志:飞船的"开关控制器"
我们给飞船装了个虚拟的"油门踏板"——`moving_right`标志。
这个布尔值小可爱只有两个状态:
- `True`:老板,油门踩到底啦!
- `False`:松脚刹车咯!
在`Ship`类里我们这样设置:
class Ship:
def __init__(self, ai_game):
# ...其他初始化代码...
self.moving_right = False # 初始状态:静止的乖宝宝
def update(self):
"""飞船的位置更新大师"""
if self.moving_right:
self.rect.x += 1 # 向右移动1像素,小碎步跑起来
键盘事件的"阴阳两面"
游戏需要同时监听两种键盘事件:
1. `KEYDOWN`:按键被按下时触发("老板踩油门啦!")
2. `KEYUP`:按键被释放时触发("老板松脚啦!")
代码实现如下:
def _check_events(self):
for event in pygame.event.get():
# ...其他事件处理...
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
self.ship.moving_right = True # 油门踩下!
elif event.type == pygame.KEYUP:
if event.key == pygame.K_RIGHT:
self.ship.movi