Python外星人入侵游戏编程完整版!孩子开心坏了

这篇文章主要为大家详细介绍了Python外星人入侵游戏编程完整的实现思路 , 文中示例代码介绍的非常详细 , 具有一定的参考价值 , 感兴趣的小伙伴们可以参考一下 , PYTHON游戏编程外星人入侵的完整实现思路 , 具体内容如下
准备工作下载python , 比如Anaconda3(64 bit) , 导入pygame游戏包
Python外星人入侵游戏编程完整版!孩子开心坏了文章插图
Python外星人入侵游戏编程完整版!孩子开心坏了文章插图
Python外星人入侵游戏编程完整版!孩子开心坏了文章插图
Python外星人入侵游戏编程完整版!孩子开心坏了文章插图
Python外星人入侵游戏编程完整版!孩子开心坏了文章插图
1.外星人设置 , alien.py , 代码:(PS:下面便是源码 , 需要源码和素材的童鞋可以点击下载即可下载
import pygamefrom pygame.sprite import Spriteclass Alien(Sprite): """表示单个外星人的类"""def __init__(self,ai_settings,screen): """初始化外星人并设置其他位置""" super(Alien,self).__init__() self.screen = screen self.ai_settings = ai_settings#加载外星人图像 , 并设置其rect属性 self.image = pygame.image.load('images/alien.bmp') self.rect = self.image.get_rect()#每个外星人最初都在屏幕左上角附近 self.rect.x = self.rect.width self.rect.y = self.rect.height#存储外星人的准确位置 self.x = float(self.rect.x)def blitme(self): """在指定位置绘制外星人""" self.screen.blit(self.image,self.rect)def check_edges(self): """如果外星人位于屏幕边缘 , 就返回True""" screen_rect = self.screen.get_rect() if self.rect.right >= screen_rect.right: return True elif self.rect.left <= 0: return Truedef update(self): """向右移动外星人""" self.x += (self.ai_settings.alien_speed_factor * self.ai_settings.fleet_direction) self.rect.x = self.x2.游戏主程序 , alien_invasion.py , 代码:import pygamefrom settings import Settingsfrom game_stats import GameStatsfrom button import Buttonfrom ship import Shipfrom pygame.sprite import Groupimport game_functions as gffrom scoreboard import Scoreboarddef run_game(): pygame.init() # 初始化背景设置 ai_settings = Settings() # 全局设置 screen = pygame.display.set_mode(# 创建screen显示窗口 (ai_settings.screen_width,ai_settings.screen_height) ) pygame.display.set_caption('Alien Invasion') # 标题 #新建Play按钮 play_button = Button(ai_settings,screen,"Play") #创建一个用于存储游戏统计信息的实例,并创建记分牌 stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) # 创建飞船 ship = Ship(ai_settings,screen) # 创建子弹编组 bullets = Group()#创建一个外星人 aliens = Group() #创建外星人群 gf.create_fleet(ai_settings,screen,ship,aliens)# 开始游戏主循环 while True: # 监视键盘和鼠标事件 gf.check_events(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets)if stats.game_active:# 移动飞船gf.update_ship(ship)# 更新子弹位置gf.update_bullets(ai_settings,screen,stats,sb,ship,aliens,bullets)#更新外星人gf.update_aliens(ai_settings,stats,screen,sb,ship,aliens,bullets) # 更新屏幕 gf.update_screen(ai_settings,screen,stats,sb,ship,aliens,bullets,play_button)run_game()