<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      pygame小游戲打飛機_4顯示敵人

      顯示敵人:

      定義顯示敵人的函數 show_enemy,調用該函數時顯示敵人的圖像

      # 引用pygame
      import pygame
      
      # 使程序初始化
      pygame.init()
      # 設置圖像參數
      screen = pygame.display.set_mode((480, 700))
      # 設置標題
      pygame.display.set_caption('打飛機')
      # 引入圖片
      icon = pygame.image.load('ufo.png')
      pygame.display.set_icon(icon)
      # 引入背景圖片
      bgImg = pygame.image.load('background.png')
      # 引入玩家圖片
      playerImg = pygame.image.load('player.png')
      # 定義玩家初始位置
      playerX = 225
      playerY = 350
      # 定義變量表示運動距離
      playerStep = 0
      # 新增 引入敵人圖片
      enemyImg = pygame.image.load('enemy.png')
      
      
      # 新增 定義顯示敵人的函數
      def show_enemy():
          # 新增 使敵人出現在(0,0)的位置
          screen.blit(enemyImg, (0, 0))
      
      
      running = True
      # 進行循環 游戲主循環
      while running:
          # 繪制背景
          screen.blit(bgImg, (0, 0))
          # 繪制玩家
          screen.blit(playerImg, (playerX, playerY))
          # 新增 調用顯示敵人函數
          show_enemy()
          # 獲取游戲事件隊列中的所有事件(涉及到玩家的各種交互,如鼠標點擊、鍵盤操作、窗口事件等)
          for event in pygame.event.get():
              # 如果事件是QUIT事件,如點擊窗口的關閉按鈕,則退出循環
              if event.type == pygame.QUIT:
                  # 退出循環
                  running = False
              # KEYDOWN判斷鍵盤按下的類型
              if event.type == pygame.KEYDOWN:
                  # 新增 判斷按下向左右鍵進行移動賦值
                  if event.key == pygame.K_RIGHT:
                      playerStep = 0.5
                  elif event.key == pygame.K_LEFT:
                      playerStep = -0.5
              # KEYUP判斷鍵盤抬起的類型
              if event.type == pygame.KEYUP:
                  # 抬起鍵盤時將移動距離改為0
                  playerStep = 0
      
          # 進行位移
          playerX += playerStep
          # 控制邊界
          if playerX > 378:
              playerX = 378
          if playerX < 0:
              playerX = 0
          if playerY > 572:
              playerY = 572
          if playerY < 0:
              playerY = 0
      
          # 界面更新
          pygame.display.update()

      敵人移動:

      1.敵人左右移動

      設置敵人初始運動速度,當敵人移動到邊界時在左右邊界做反彈效果

      注意:在函數中使用全局變量時,需要在函數中使用 global 語句標注使用的變量為全局變量

      # 引用pygame
      import pygame
      # 使程序初始化
      pygame.init()
      # 設置圖像參數
      screen =pygame.display.set_mode((480,700))
      # 設置標題
      pygame.display.set_caption('打飛機')
      # 引入圖片
      icon=pygame.image.load('ufo.png')
      pygame.display.set_icon(icon)
      # 引入背景圖片
      bgImg=pygame.image.load('background.png')
      # 引入玩家圖片
      playerImg=pygame.image.load('player.png')
      # 定義玩家初始位置
      playerX=225
      playerY=350
      # 定義變量表示玩家運動速度
      playerStep=0
      # 引入敵人圖片
      enemyImg=pygame.image.load('enemy.png')
      # 新增 定義敵人位置
      enemyX=225
      enemyY=20
      # 新增 引入敵人運動速度
      enemyStep=0.1
      # 定義顯示敵人的函數
      def show_enemy():
          # 新增 標注為全局變量
          global enemyX
          global enemyY
          global enemyStep
          # 函數可以使敵人出現在(enemyX,enemyY)的位置
          screen.blit(enemyImg, (enemyX,enemyY))
          # 新增 敵人飛機運動測試
          enemyX += enemyStep
          # 新增 控制敵人邊界當敵人碰到左右邊界時反彈,當敵人運動到上下邊界時停止
          if enemyX > 378:
              enemyStep*=-1
          if enemyX < 0:
              enemyStep*=-1
          if enemyY > 572:
              enemyY = 572
          if enemyY < 0:
              enemyY = 0
      
      running =True
      # 進行循環 游戲主循環
      while running :
          # 繪制背景
          screen.blit(bgImg,(0,0))
          # 繪制玩家
          screen.blit(playerImg, (playerX, playerY))
          # 調用顯示敵人函數
          show_enemy()
          # 獲取游戲事件隊列中的所有事件(涉及到玩家的各種交互,如鼠標點擊、鍵盤操作、窗口事件等)
          for event  in pygame.event.get():
              # 如果事件是QUIT事件,如點擊窗口的關閉按鈕,則退出循環
              if event.type == pygame.QUIT:
                  #退出循環
                  running =False
              # KEYDOWN判斷鍵盤按下的類型
              if event.type == pygame.KEYDOWN:
                  # 判斷按下向左右鍵進行移動賦值
                  if event.key == pygame.K_RIGHT:
                      playerStep=0.5
                  elif event.key == pygame.K_LEFT:
                      playerStep=-0.5
              # KEYUP判斷鍵盤抬起的類型
              if event.type == pygame.KEYUP:
                  # 抬起鍵盤時將移動距離改為0
                  playerStep = 0
      
          # 進行位移
          playerX+=playerStep
          # 控制邊界
          if playerX > 378:
              playerX = 378
          if playerX < 0:
              playerX = 0
          if playerY > 572:
              playerY = 572
          if playerY < 0:
              playerY = 0
      
          # 界面更新
          pygame.display.update()

       效果如下:

      屏幕錄制 2025-07-29 114347

      2.敵人下沉移動與隨機出現

      當敵人碰到左右邊界時觸發下沉移動

      調用 random 函數生成敵人隨機顯示位置的坐標

      注意:生成隨機數時需要定義最大值和最小值。

      # 引用 pygame
      import pygame
      # 新增 引用隨機模塊
      import random
      
      # 使程序初始化
      pygame.init()
      # 設置游戲窗口大小
      screen = pygame.display.set_mode((480, 700))
      # 設置標題
      pygame.display.set_caption('打飛機')
      # 設置游戲圖標
      icon = pygame.image.load('ufo.png')
      pygame.display.set_icon(icon)
      # 引入背景圖片
      bgImg = pygame.image.load('background.png')
      
      # 引入玩家圖片
      playerImg = pygame.image.load('player.png')
      # 定義玩家初始位置
      playerX = 225
      playerY = 350
      # 定義變量表示玩家運動速度
      playerStep = 0
      
      # 引入敵人圖片
      enemyImg = pygame.image.load('enemy.png')
      # 新增 通過 random 函數進行隨機位置坐標生成
      enemyX = random.randint(100, 380)
      enemyY = random.randint(0, 100)
      # 定義變量表示敵人運動速度
      enemyStep = 0.1
      
      # 定義顯示敵人的函數
      def show_enemy():
          # 標注為全局變量
          global enemyX
          global enemyY
          global enemyStep
          # 使敵人出現在(enemyX, enemyY)的位置
          screen.blit(enemyImg, (enemyX, enemyY))
          # 使敵人飛機左右移動
          enemyX += enemyStep
          # 控制敵人移動邊界,當敵人碰到左右邊界時反彈,當敵人運動到上下邊界時停止
          if enemyX > 378:
              enemyStep *= -1
              # 新增 當碰到左右邊界時下沉
              enemyY += 20
          if enemyX < 0:
              enemyStep *= -1
              enemyY += 20
      
          if enemyY > 572:
              enemyY = 572
          if enemyY < 0:
              enemyY = 0
      
      running = True
      # 進行循環 游戲主循環
      while running:
          # 繪制背景
          screen.blit(bgImg, (0, 0))
          # 繪制玩家
          screen.blit(playerImg, (playerX, playerY))
          # 調用顯示敵人函數
          show_enemy()
          # 獲取游戲事件隊列中的所有事件(涉及到玩家的各種交互,如鼠標點擊、鍵盤操作、窗口事件等)
          for event in pygame.event.get():
              # 如果事件是QUIT事件,如點擊窗口的關閉按鈕,則退出循環
              if event.type == pygame.QUIT:
                  # 退出循環
                  running = False
              # KEYDOWN 判斷鍵盤是否按下
              if event.type == pygame.KEYDOWN:
                  # 判斷按下左右鍵進行移動賦值
                  if event.key == pygame.K_RIGHT:
                      playerStep = 0.5
                  elif event.key == pygame.K_LEFT:
                      playerStep = -0.5
              # KEYUP 判斷鍵盤是否抬起
              if event.type == pygame.KEYUP:
                  # 抬起鍵盤時將移動距離改為 0
                  playerStep = 0
      
          # 玩家左右移動
          playerX += playerStep
          # 控制玩家移動邊界
          if playerX > 378:
              playerX = 378
          if playerX < 0:
              playerX = 0
          if playerY > 572:
              playerY = 572
          if playerY < 0:
              playerY = 0
      
          # 界面更新
          pygame.display.update()

      效果如下:

       屏幕錄制 2025-07-30 171027

      posted @ 2025-07-30 17:12  賽博郎中  閱讀(289)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 幻女free性俄罗斯毛片| 久久亚洲精品11p| 国产乱码日产乱码精品精| 动漫精品专区一区二区三区| 亚洲国产成人精品无色码| 伊人蕉影院久亚洲高清| 亚洲精品国产av成人网| 日韩人妻无码一区二区三区99| 中文字幕国产精品二区| 免费无码AV一区二区波多野结衣| 天堂亚洲免费视频| 亚洲日韩亚洲另类激情文学| 在线免费观看视频1区| 么公的好大好硬好深好爽视频| 国产日韩一区二区四季| 亚洲精品乱码久久久久红杏| 亚洲成色在线综合网站| 久久av中文字幕资源网| 亚洲欧美综合中文| 久久久久久久久久久久中文字幕| 久青草精品视频在线观看| 欧美成人aaa片一区国产精品| 丁香五月亚洲综合在线国内自拍| 日本无人区一区二区三区| 亚洲 欧美 唯美 国产 伦 综合| 好男人官网资源在线观看| 亚洲人成亚洲人成在线观看| 久久精品a亚洲国产v高清不卡| 人人澡超碰碰97碰碰碰| 精品国产一区二区三区av性色| 久久久综合九色合综| 激情久久av一区二区三区| 松江区| 国产肥臀视频一区二区三区 | 性色a∨精品高清在线观看| 国产精品午夜精品福利| 亚洲精品tv久久久久久久久久| 国产无遮挡猛进猛出免费软件| 4480yy亚洲午夜私人影院剧情| 动漫av网站免费观看| 漂亮人妻被黑人久久精品|