国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python實戰小游戲飛機大戰詳解

Python實戰小游戲飛機大戰詳解

2022-02-24 00:28嗨!程序媛 Python

飛機大戰想必是很多人童年時期的經典游戲,我們依舊能記得抱個老人機娛樂的場景,下面這篇文章主要給大家介紹了關于如何利用python寫一個簡單的飛機大戰小游戲的相關資料,需要的朋友可以參考下

導語

“看見別人都那么努力,那么勤奮,那么意氣風發地走在成功的道路上,你問問自己:難道就不想成為他們的絆腳石嗎?”

——周一整理好心情好好出發吧!

Python實戰小游戲飛機大戰詳解

大家好啊,還在學習的小小伙伴兒慢慢學哈~學完基礎的你,今天可以放松下,跟著小編玩會兒游戲再繼續哦!

新的一周要努力哦!趕不上別人至少也要慢慢溜上去,曉得吧?乖巧.jpg “曉得曉得,會努力的”。

Python實戰小游戲飛機大戰詳解

大家還記得微信版《經典飛機大戰》嘛?

今天做的這款“打飛機”小游戲――畫面詼諧,精致,完全復刻經典微信飛機大戰哦!

完全復刻?怎么?大家不信嘛!那跟著小編一起來看看吧~

Python實戰小游戲飛機大戰詳解

 

?正文

一、環境安裝

本文是寫的游戲代碼,基于Pygame的源碼項目,這里是自己寫的飛機大戰的1.0版本,比較簡陋。

準備:Python3、Pycharm、pygame模塊以及自帶的部分模塊。

pip install -i https://pypi.douban.com/simple/  pygame

二、我方飛機

def main():
  global is_hit
  global nums
  screen = pygame.display.set_mode((480, 852), 0, 32)
  background = pygame.image.load("./feiji/background.png")
  # 創建飛機
  hero = HeroPlane(screen)
  enermy_plane = EnermyPlane(screen)
  while True:
      global hero_nums
      global enermy_nums
      # 顯示背景
      screen.blit(background, (0, 0))
      # 顯示我方飛機
      hero.display()
      # 測試是否被子彈擊中
      hero.test(enermy_plane.bullets)
      if hero.is_hit:
          hero_nums += 1
          if hero_nums == 10:
              hero.image = pygame.image.load("./feiji/hero_blowup_n1.png")
          elif hero_nums == 20:
              hero.image = pygame.image.load("./feiji/hero_blowup_n2.png")
          elif hero_nums == 30:
              hero.image = pygame.image.load("./feiji/hero_blowup_n3.png")
          elif hero_nums == 40:
              hero.image = pygame.image.load("./feiji/hero_blowup_n4.png")
          elif hero_nums > 50:
              break

三、敵方飛機

# 顯示敵飛機
      enermy_plane.display()
      enermy_plane.test(hero.bullets)
      if enermy_plane.is_hit:
          enermy_nums += 1
          if enermy_nums == 10:
              enermy_plane.image = pygame.image.load("./feiji/enemy0_down1.png")
          elif enermy_nums == 20:
              enermy_plane.image = pygame.image.load("./feiji/enemy0_down2.png")
          elif enermy_nums == 30:
              enermy_plane.image = pygame.image.load("./feiji/enemy0_down3.png")
          elif enermy_nums == 40:
              enermy_plane.image = pygame.image.load("./feiji/enemy0_down4.png")
          elif enermy_nums > 50:
              enermy_plane = EnermyPlane(screen)
              enermy_nums = 0
      else:
          enermy_plane.move()
          enermy_plane.fire()

      # 控制飛機左右
      key_control(hero)
      # 刷新屏幕
      pygame.display.update()
      # 程序休眠0.01秒
      time.sleep(0.01)

四、控制鍵盤移動

def key_control(hero):
  for event in pygame.event.get():
      if event.type == QUIT:
          print("exit")
          exit()
      elif event.type == KEYDOWN:
          if event.key == K_a or event.key == K_LEFT:
              hero.move_left()
              print("left")
          elif event.key == K_d or event.key == K_RIGHT:
              hero.move_right()
              print("right")
          elif event.key == K_SPACE:
              hero.fire()
              print("space")

五、檢測子彈碰撞

class BasePlane(object):
  def __init__(self, screen, x, y, image):
      self.x = x
      self.y = y
      self.screen = screen
      self.image = pygame.image.load(image)
      self.is_hit = False  # 此標志用來表示飛機是否被擊中了
      self.bullets = []

  def test(self, bullets):
      for bullet in bullets:
          if self.x < bullet.x < self.x + self.image.get_width() and \
                                  self.y < bullet.y < self.y + self.image.get_height():
              self.is_hit = True

              #  檢測子彈碰撞
      for item in self.bullets:
          for bullet in bullets:
              if item.x < bullet.x < item.x + item.image.get_width() and \
                                      item.y < bullet.y < item.y + item.image.get_height():
                  item.is_hit = True
                  bullet.is_hit = True

六、效果圖

?Python實戰小游戲飛機大戰詳解

?Python實戰小游戲飛機大戰詳解

 

總結

嘿~簡單版本是無限流的,沒補給包,大飛機小飛機啥的!

后續有時間的話小編會繼續完善,奧里給~

Python實戰小游戲飛機大戰詳解

好啦!本次文章就到這里了~如有想跟著小編一起學習交流的,歡迎大家!

Python實戰小游戲飛機大戰詳解

到此這篇關于Python實戰小游戲飛機大戰詳解的文章就介紹到這了,更多相關Python 飛機大戰內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/xy258009/article/details/121114186

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费在线a | 成年网站视频 | 色综合色综合网色综合 | 99久久久成人国产精品 | 日韩天堂| 国内精品久久久久久中文字幕 | 人人射视频 | 久久久久久久久久久九 | 日韩av高清在线 | 亚洲一区观看 | 手机在线观看 | 久草在线免费资源 | 国产成人综合av | 成人爽a毛片一区二区免费 日韩av高清在线 | 欧美精品成人一区二区在线 | 国产一级久久久久 | 黄色免费在线网站 | 91社影院在线观看 | 久久久精品视频网站 | 国产精品毛片久久久久久 | 伦理午夜电影免费观看 | 日韩成人在线观看 | 欧美成人精品一区二区三区 | 看av的网址 | 亚洲电影在线播放 | 中文字幕不卡 | 亚洲国产精品久久久久久久 | 亚洲一区二区免费看 | 特黄特黄aaaa级毛片免费看 | 日韩在线亚洲 | 国产午夜久久 | 亚洲激情一区二区 | 欧美亚洲 | 免费观看a级毛片在线播放 成人片免费看 | 国内精品视频一区 | 国产在线精品一区二区 | 久久中文字幕一区二区 | 精品一区二区三区久久 | 欧洲一区二区在线观看 | 亚洲电影在线播放 | 黄色片网站|