Python怎么实现游戏中驾驶飞船不断向右效果

这篇文章主要介绍“Python怎么实现游戏中驾驶飞船不断向右效果”,在日常操作中,相信很多人在Python怎么实现游戏中驾驶飞船不断向右效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么实现游戏中驾驶飞船不断向右效果”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联是一家专业提供克井企业网站建设,专注与做网站、网站建设、H5建站、小程序制作等业务。10年已为克井众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

用法分析

玩家按住右箭头键不放时,我们希望飞船不断地向右移动,直到玩家松开为止。我们将让游戏检测pygame.KEYUP 事件,以便玩家松开右箭头键时我们能够知道这一点;然后,我们将结合使用KEYDOWN 和KEYUP 事件,以及一个名为moving_right 的标志来实现持续移动。

飞船不动时,标志moving_right 将为False 。玩家按下右箭头键时,我们将这个标志设置为True ;而玩家松开时,我们将这个标志重新设置为False 。

飞船的属性都由Ship 类控制,因此我们将给这个类添加一个名为moving_right 的属性和一个名为update() 的方法。方法update() 检查标志moving_right 的状态,如果这个标志为True ,就调整飞船的位置。每当需要调整飞船的位置时,我们都调用这个方法。

代码实例

#======================================================
#功能:ship类
#作者:python小哥
#时间:2020-7-10
#微信公众号:DJXY00001
#微信名称:Python提升课堂
#Version:1.0
#======================================================
class Ship():def __init__(self, screen):    --snip--    # 将每艘新飞船放在屏幕底部中央    self.rect.centerx = self.screen_rect.centerx    self.rect.bottom = self.screen_rect.bottom    # 移动标志    ❶ self.moving_right = False    ❷ def update(self):        """根据移动标志调整飞船的位置"""        if self.moving_right:          self.rect.centerx += 1      def blitme(self):      --snip--

在方法__init__() 中,我们添加了属性self.moving_right ,并将其初始值设置为False (见❶)。接下来,我们添加了方法update() ,它在前述标志为True 时向右移动飞船(见❷)。

下面来修改check_events() ,使其在玩家按下右箭头键时将moving_right 设置为True ,并在玩家松开时将moving_right 设置为False :

#======================================================
#功能:game_functions 类
#作者:python小哥
#时间:2020-7-10
#微信公众号:DJXY00001
#微信名称:Python提升课堂
#Version:1.0
#======================================================
def check_events(ship):    """响应按键和鼠标事件"""    for event in pygame.event.get():        --snip--        elif event.type == pygame.KEYDOWN:            if event.key == pygame.K_RIGHT:                # 修改向右移动飞船标志位❶               ship.moving_right = True❷       elif event.type == pygame.KEYUP:            if event.key == pygame.K_RIGHT:                ship.moving_right = False

在❶处,我们修改了游戏在玩家按下右箭头键时响应的方式:不直接调整飞船的位置,而只是将moving_right 设置为True 。在❷处,我们添加了一个新的elif 代码块,用于响应KEYUP 事件:玩家松开右箭头键(K_RIGHT )时,我们将moving_right 设置为False 。

最后,我们需要修改alien_invasion.py 中的while 循环,以便每次执行循环时都调用飞船的方法update() :

#======================================================
#功能:alien_invasion类
#作者:python小哥
#时间:2020-7-10
#微信公众号:DJXY00001
#微信名称:Python提升课堂
#Version:1.0
#======================================================
# 开始游戏主循环while True:    gf.check_events(ship)    ship.update()    gf.update_screen(ai_settings, screen, ship)

到此,关于“Python怎么实现游戏中驾驶飞船不断向右效果”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


文章名称:Python怎么实现游戏中驾驶飞船不断向右效果
网页链接:http://scyanting.com/article/jgdcpd.html