python如何实现飞船大战

  介绍

小编这次要给大家分享的是python如何实现飞船大战,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

效果图

 python如何实现飞船大战

按住上下左右键可以让贪吃蛇运动

python制作坦克大战

效果图

 python如何实现飞船大战

可以按住上下左右方向键以及WSAD让坦克运动
按0和j可以发射子弹。
具体代码与图片音源文件可以从我的GitHub地址获取,欢迎星

接下来我们来实现一个飞船大战的游戏

<强>创建飞船类

进口pygame
  pygame。雪碧进口雪碧
  
  类船(雪碧):
  
  def __init__(自我、ai_settings屏幕):
  “““初始化,并设置其起始位置!”““
  超级(船、自我). __init__ ()
  自我。屏幕=屏幕
  自我。ai_settings=ai_settings
  
  #装载船形象,并加快其矩形。
  自我。形象=pygame.image.load(& # 39;图像/ship.bmp& # 39;)
  自我。矩形=self.image.get_rect ()
  自我。screen_rect=screen.get_rect ()
  
  #开始每个新船屏幕底部的中心。
  self.rect。centerx=self.screen_rect.centerx
  self.rect。底=self.screen_rect.bottom
  
  #船存储一个十进制值# 39;s中心。
  自我。中心=浮动(self.rect.centerx)
  
  #运动的旗帜。
  自我。moving_right=False
  自我。moving_left=False
  
  def center_ship(自我):
  “““中心船>类设置():
  “““一个类来存储所有设置外星人入侵!”““
  
  def __init__(自我):
  “““初始化游戏# 39;s静态设置!”““
  #屏幕设置。
  自我。screen_width=1200
  自我。screen_height=800
  自我。bg_color=(230、230、230)
  
  #船设置。
  自我。ship_limit=3
  
  #子弹设置。
  自我。bullet_width=3
  自我。bullet_height=15
  自我。bullet_color=60岁,60岁,60岁
  自我。bullets_allowed=3
  
  #外星人设置。
  自我。fleet_drop_speed=10
  
  #游戏加速的速度有多快。
  自我。speedup_scale=1.1
  #陌生点的速度值增加。
  自我。score_scale=1.5
  
  self.initialize_dynamic_settings ()
  
  def initialize_dynamic_settings(自我):
  “““初始化设置改变整个游戏!”““
  自我。ship_speed_factor=1.5
  自我。bullet_speed_factor=3
  自我。alien_speed_factor=1
  
  #得分。
  自我。alien_points=50
  
  # fleet_direction 1代表正确,1代表了。
  自我。fleet_direction=1
  
  def increase_speed(自我):
  “““提高速度设置和外星人点值!”““
  自我。ship_speed_factor *=self.speedup_scale
  自我。bullet_speed_factor *=self.speedup_scale
  自我。alien_speed_factor *=self.speedup_scale
  
  自我。alien_points=int(自我。alien_points * self.score_scale) 

<强>创建子弹类

进口pygame
  pygame。雪碧进口雪碧
  
  类子弹(雪碧):
  “““一个类来管理子弹从船上!”,“
  
  def __init__(自我,ai_settings,屏幕,船):
  “““创建一个子弹对象,在船# 39;s干净自己的当前位置”;“
  超级(子弹,自我). __init__ ()
  自我。屏幕=屏幕
  
  #创建子弹矩形在(0,0),然后设置正确的位置。
  自我。矩形=pygame。矩形(0,0,ai_settings.bullet_width,
  ai_settings.bullet_height)
  self.rect。centerx=ship.rect.centerx
  self.rect。顶级=ship.rect.top
  
  #子弹# 39;存储一个十进制值位置。
  自我。y=浮动(self.rect.y)
  
  自我。颜色=ai_settings.bullet_color
  自我。speed_factor=ai_settings.bullet_speed_factor
  
  def(自我更新):
  “““子弹的移动屏幕!”““
  #更新子弹的小数点的位置。
  自我。y -=self.speed_factor
  #矩形的位置更新。
  self.rect。y=self.y
  
  def draw_bullet(自我):
  “““子弹在屏幕上画!”““
  pygame.draw.rect(自我。屏幕上,自我。颜色、self.rect) 

<强>创建游戏功能类

导入系统
  从进口睡眠时间
  
  进口pygame
  
  从子弹进口
  从外星进口外星人
  
  def check_keydown_events(事件、ai_settings屏幕,船,子弹):
  “““响应按键!”““
  如果事件。关键==pygame.K_RIGHT:
  船。moving_right=True
  elif事件。关键==pygame.K_LEFT:
  船。moving_left=True
  elif事件。关键==pygame.K_SPACE:
  fire_bullet (ai_settings屏幕,船,子弹)
  elif事件。关键==pygame.K_q:
  sys.exit ()
  
  def check_keyup_events(事件,船):
  “““应对关键版本!”““
  如果事件。关键==pygame.K_RIGHT:
  船。moving_right=False
  elif事件。关键==pygame.K_LEFT:
  船。moving_left=False
  
  def check_events (play_button ai_settings、屏幕数据,某人,船,外星人,
  子弹):
  “““响应按键和鼠标事件!”““
  在pygame.event.get事件():
  如果事件。类型==pygame.QUIT:
  sys.exit ()
  elif事件。类型==pygame.KEYDOWN:
  check_keydown_events(事件、ai_settings屏幕,船,子弹)
  elif事件。类型==pygame.KEYUP:
  check_keyup_events(事件、船舶)
  elif事件。类型==pygame.MOUSEBUTTONDOWN:
  mouse_x mouse_y=pygame.mouse.get_pos ()
  check_play_button (play_button ai_settings、屏幕数据,某人,
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

python如何实现飞船大战