学习如何开发《外星人入侵》小游戏_5

本文详细介绍了如何在Python的Pygame库中开发《外星人入侵》小游戏,包括响应按键实现飞船左右移动、允许持续移动、调整飞船速度以及限制飞船活动范围的代码实现。通过这些步骤,玩家可以控制飞船在屏幕内自由移动,并通过设置速度控制飞船的快慢。
摘要由CSDN通过智能技术生成

作者:雷蕾

做了那么多的准备工作,现在要来学习如何让游戏玩家(用户)能够左右移动飞船。
驾驶飞船需做的编写代码工作:
(1)响应按键
每当用户按键时,都将在Pygame中注册一个事件。事件是通过方法pygame.event.get()获取的,因此我们需要在方法_check_events()中指定要检查哪些类型的事件,
每次按键都被注册为一个KEYDOWN事件,Pygame检测到KEYDOWN事件时,需要检测按下的键是否是触发行动的键。

    def _check_events(self):
        '''响应按键和鼠标事件'''
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                sys.exit()
            elif event.type==pygame.KEYDOWN:
                if event.key==pygame.K_RIGHT:
                    #向右移动飞船
                    self.ship.rect.x+=1

因为要响应按键所以对主程序文件进行更新,主要是在方法_check_events()中添加了一个elif代码块,让pygame在检测到KEYDOWN事件时能够进行响应。

       if event.key==pygame.K_RIGHT:
                    #向右移动飞船
                    self.ship.rect.x+=1

这个代码块就是检查按下键(event.key)是否是向右箭头键(pygame.K_RIGHT),如果是则将self.ship.rect.centerx的值+1,即飞船图像向右移动。
当再次运行主程序文件时,每按一次向右箭头键,飞船图像将向右移动一步。
(2)允许持续移动
在上述示例中,我们是每按一次向右箭头键,飞船就往右移动一步,那如果希望玩家要是一直不松向右箭头键时,飞船能够不断向右移动,我们该如何编写代码?

import pygame
class Ship:
    '''管理飞船的类'''
    def __init__(self,ai_game):
        '''初始化飞船并设置其初始位置'''
        self.screen=ai_game.screen
        self.screen_rect=ai_game.screen.get_rect()
        #加载飞船图像并获取其外接矩形
        self.image=pygame.image.load('images/ship.bmp')
        self.rect=self.image.get_rect()
        #对于每艘新飞船,都将其放在屏幕底部的中央
        self.rect.midbottom=self.screen_rect.midbottom
        #移动标志
        self.moving_right=False
    def update(self):
        '''根据移动标志调整飞船的位置'''
        if self.moving_right:
            self.rect.x+=1
    def blitme(self):
        '''在指定位置绘制飞船'''
        self.screen.blit(self.image,self.rect)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值