python3.7 + pygame1.9.3实现小游戏《外星人入侵》(二):驾驶飞船

本文介绍了如何使用Python的pygame库制作小游戏《外星人入侵》中驾驶飞船的实现过程。通过响应键盘事件,实现飞船的左右移动,同时加入了按键持续按下的持续移动效果,并对移动速度进行了调整。文章详细阐述了在Settings类中管理速度,在Ship类中控制飞船状态以及边界限制,以及重构game_functions以分别处理KEYDOWN和KEYUP事件的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、响应按键
每当用户按键时,都将在Pyagame中注册一个事件,而事件都是通过方法pygame.event.get()获取。每次按键都被注册为一个KEYDOWN事件,我们可以通过相关属性检查是否是特定的键,并对飞船做出相应移动。
在game_fuctions.py的check_events()函数中中新增判断语句,当按右箭头时,飞船向右移动1像素:

def check_events(ship):
    # 响应按键和鼠标事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RIGHT:
                # 向右移动飞船
                ship.rect.centerx += 1

需要注意的是在函数check_events()中包含了形参,相应的,在alien_invasion.py中需要更新相关调用代码。
二、左右移动及速度调整
至此我们拥有了一个良好的开端,然而却还不能高效地移动飞船,因为当我们按住箭头键不放时,我们是希望飞船能够持续移动,直到按键松开。
因而我们接下来,将让游戏检测pygame.KEYUP事件,以关注玩家是否松开按键。同时添加一个初始值为False的布尔属性,当玩家按下箭头键时,将该值重置为True,从而能构造一个循环来持续移动飞船,而当玩家松开时,就将该值再次设为Fa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值