Python戰機小遊戲,學習pygame

2022-07-05 16:12:08 字數 3140 閱讀 7325

import pygame   # 匯入遊戲包

pygame.init() # 匯入並初始化所有pygame模組,使用其他模組之前必須先呼叫init()方法

print('下面是遊戲**:')

# 繪製矩形

# 座標系 左上角(0,0),向右x+,向下y+

# 遊戲中,所有可見元素都是以矩形區域來描述位置,矩形區域四個要素(x,y)(width,height)

# pygame提供了乙個矩形區域類pygame.rect

hero_rect = pygame.rect(150, 300, 102, 126) # 繪製矩形,記錄飛機初始位置

print('英雄原點:%d %d, 英雄尺寸:%d %d' % (hero_rect.x, hero_rect.y, hero_rect.width, hero_rect.height))

print('英雄size: %d %d' % hero_rect.size) # 英雄size: 120 130

print(hero_rect) # # 建立遊戲主視窗

# pygame提供乙個模組pygame.display,用來建立遊戲視窗

# pygame.模組名稱.類名稱 類首字母大寫

# pygame.display.set_mode() 初始化遊戲顯示視窗,後續所有影象繪製基於這個返回結果

# pygame.display.update() 重新整理螢幕顯示內容,稍後使用

# pygame.display.set_mode((width,height) 預設和螢幕大小一致, 螢幕附加選項 是否全屏等 預設為空, 顏色位數 預設自動匹配)

screen = pygame.display.set_mode((480, 700)) # 此時screen物件是乙個記憶體中的螢幕資料物件,理解為乙個畫布

# 繪製影象

# 遊戲元素大多都是影象,影象初始儲存在磁碟上,需要時,載入到記憶體

# pygame.image.load(影象path) 載入影象資料

# 使用主視窗遊戲螢幕物件,呼叫blit()方法,blit(影象,位置)將影象繪製到指定位置

# 呼叫pygame.display.update()方法,更新整個螢幕顯示

bg = pygame.image.load('./images/background.png') # 繪製背景影象

screen.blit(bg, (0, 0))

hero = pygame.image.load('./images/me1.png') # 繪製英雄飛機影象

# screen.blit(hero, (100, 100))

# pygame.display.update() # 更新螢幕

# 遊戲時鐘

# pygame提供的類pygame.time.clock()可以方便的設定螢幕繪製速度--重新整理幀率

# 遊戲初始化階段建立乙個時鐘物件

# 在遊戲迴圈中讓時鐘物件呼叫tick()方法,tick(幀率),每秒執行多少次

# tick()自動設定遊戲迴圈中的延時

clock = pygame.time.clock() # 建立時鐘物件

# ******************************=== 上方是遊戲初始化 ******************************===

# ***************= 設定遊戲視窗 === 繪製影象初始位置 === 設定遊戲時鐘 ***************====

# *************************== 遊戲迴圈 意味著遊戲真正的開始 *************************==

# *****=== 設定重新整理幀率 === 檢測使用者互動 === 更新所有影象位置 === 更新螢幕顯示 **********=

# 動畫

# 動畫原理:快速在螢幕上繪製影象,每秒繪製60次,就能達到連續高品質動畫效果,每次繪製結果為 幀 frame

# 每呼叫一次update(),就是一幀

# 每次呼叫update()之前,需要把遊戲影象都重新繪製一遍,最先繪製背景

# 遊戲迴圈中監聽事件

# 事件event 使用者針對遊戲所做的操作

# 捕獲事件: pygame.event.get() 獲得當前 事件列表

# 只有捕獲到事件,才能做出相應的響應

# 遊戲迴圈

# 遊戲迴圈作用:

# 1.保證遊戲不會直接退出

# 2.變化影象位置,產生動畫效果,1/60秒移動一下影象位置,呼叫pygame.display.update()更新螢幕

# 3.檢測使用者互動,按鍵滑鼠等

while true:

clock.tick(20) # 指定迴圈體內部**執行的頻率

# 捕獲事件

event_list = pygame.event.get() # 獲取事件列表

if len(event_list) > 0:

print(event_list) # 有事件就列印事件列表

# 事件監聽 做出響應

for event in event_list:

if event.type == pygame.quit:

print('退出遊戲')

pygame.quit() # 解除安裝pygame模組,退出遊戲

# break()只能退出當前迴圈,for外面還有while,所以使用內建函式exit()直接退出程式系統

exit() # 直接退出系統

# 判斷飛機位置

if hero_rect.y <= 0: # 飛機出視野迴圈到底部出現

hero_rect.y = 700

hero_rect.y -= 1 # 修改飛機位置

screen.blit(bg, (0, 0)) # 重新繪製背景

screen.blit(hero, hero_rect) # 將飛機影象繪製到指定位置

pygame.display.update() # 更新螢幕

pygame.quit() # 解除安裝pygame模組,清空記憶體,結束遊戲

執行結果:

python學習 小遊戲

基於python3.4 while迴圈 1 usr bin python32 coding utf 8 34 import random 5import sys6 importos7 8 lucky num int random.randint 0,9 9 guess count 0 10 os.s...

python初學小遊戲 python學習(小遊戲)

小遊戲 1.身份選擇 顯示提示資訊 歡迎光臨 遊戲!請選擇你的身份 1.2.請選擇 x 根據使用者選擇來分配身份 顯示不同的提示訊息 1.2.3.2 遊戲逬行 顯示玩家的基本資訊 攻擊力生命值 顯示玩家可以逬行的操作 1 練級 提公升玩家的攻擊力和生命值 2 打boss 玩家對 boss逬行攻擊,玩...

猜拳小遊戲(python)

import random 載入模組random 隨機數 win 0 定義勝場 lose 0 定義敗場 dogfall 0 定義平局 while true while 迴圈 print 10 猜拳遊戲 10 遊戲開頭輸出 遊戲名 print 勝 s,敗 s,平 s win,lose,dogfall ...