这篇文章主要介绍“Python怎么实现游戏中驾驶飞船不断向右效果”,在日常操作中,相信很多人在Python怎么实现游戏中驾驶飞船不断向右效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么实现游戏中驾驶飞船不断向右效果”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
用法分析
玩家按住右箭头键不放时,我们希望飞船不断地向右移动,直到玩家松开为止。我们将让游戏检测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怎么实现游戏中驾驶飞船不断向右效果”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。