python互動式專案例項 外星人入侵
一個遊戲專案:
引入模組sys和pygame,模組sys可以指引使用者退出,而pygame包含遊戲的基本功能。
定義開頭run_game(),程式碼行pygame.init()初始化背景設定,讓Python能夠正常工作。用pygame.display.set_mode()來建立screen的顯示視窗,實參(1200,800)是元組,用來定義視窗的大小。
這個遊戲用while來控制迴圈,其中包含一個事件迴圈和管理螢幕更新的程式碼,for迴圈事件迴圈。
為訪問pygame檢測到的事件,使用方法pygame.event.get()。所有鍵盤和滑鼠事件都促使for迴圈執行,在這個迴圈中,編寫一系列的if語句來檢測並響應特定的事件。例如,玩家單擊遊戲視窗的關閉按鈕時,將檢測到pygame.QUIT事件,呼叫sys.exit()退出遊戲介面。
每一次while迴圈都會執行繪製一個空螢幕,並擦去 舊螢幕,使得只有新螢幕可見。在移動遊戲元素的時候,pygame.display.flip()將不斷更新螢幕,以顯示元素的新位置,並在原來位置隱藏元素,從而製造平滑移動的效果。
執行完這些程式碼之後,你將看到空的pygame視窗。
import sys
import pygame
def run_game():
pygame.init()
screen=pygame.display.set_mode((1200,800))
pygame.display.set_caption(“Alien Invarsion”)
while True:
for event in pygame.event.get():
if event==pygame.QUIT
sys.exit()
pygame.display.flip()
run_game()
建立ship類:
匯入模組pygame,ship接受兩個引數:引用self和screen,screen指定了飛船將繪製到什麼地方。用pygame.image.load()載入飛船的surface,儲存到self.image中。載入影象之後,使用get_rect()獲取響應surface的屬性rect,並儲存到self.rect()中。
處理rect物件時,可用矩形四角中心的x和y 座標,通過指定這些值來指定矩形的位置。
要是矩形元素居中,可設定相應rect的屬性center、centerx、centery。要是遊戲元素和螢幕邊緣對齊,可使用屬性top、bottom、left、right。
在pygame中,定義了方法blitme(),根據self.rect()指定的位置繪製到螢幕上。
import pygame
class Ship():
def init(self,screen):
self.screen=screen
self.image=pygame.image.load(‘image/ship.bmp’)
self.rect=self.image.get_rect()
self.screen_rect=screen.get_rect()
self.rect.centerx=self.screen_rect.centerx
self.rect.bottom=self.screen_rect.bottom
def blitme(self):
self.screen.blit(self.image,self.rect)
相關文章
- 完整的python專案例項-python完整專案Python
- 自學Python筆記-pygame模組《外星人入侵》練習篇Python筆記GAM
- 完整的python專案例項-Python例項練手專案彙總(附原始碼)Python原始碼
- 特徵工程:互動特徵與多項式特徵理解特徵工程
- Python專案實踐之二:外星人(1)Python
- Python專案1“外星人入侵”遊戲(完整)及pyinstaller打包過程(含幾種報錯解決辦法)Python遊戲
- Python|Python互動之mongoDB互動詳解PythonMongoDB
- 互動式儀表板!Python輕鬆完成!⛵Python
- 10個最新互動式Web設計例項欣賞Web
- 互動式 .Net
- 完整的python專案例項-《Python爬蟲開發與專案實戰》pdf完整版Python爬蟲
- 使用互動式 shell 來增強你的 PythonPython
- Streamlit 快速構建互動式頁面的python庫Python
- python開發例項-python開發案例Python
- 求大神解答,《Python程式設計從入門到實踐》第94-95頁,外星人入侵Python程式設計
- 淺析mysql互動式連線&非互動式連線MySql
- 入坑Python--輸出和互動式開發Python
- 如何在互動式環境中執行Python程式Python
- 求一個ot的專案例項
- python和sliver互動Python
- python專案例項原始碼-32個Python爬蟲實戰專案,滿足你的專案慌(帶原始碼)Python原始碼爬蟲
- python專案開發例項-Python專案案例開發從入門到實戰——爬蟲、遊戲Python爬蟲遊戲
- Powershell————2、Powershell互動式
- 互動式 .Net 容器版
- python SQL基礎與python互動PythonSQL
- 清華、華為等提出iVideoGPT:專攻互動式世界模型IDEGPT世界模型
- 互動投影+沉浸式互動投影綜合解決方案
- python使用者互動Python
- Python學習之路12-外星人Python
- python大型專案應用例項,最全python專案開發案例,吃透這些知識,小白也能變大牛...Python
- 通過互動式命令從github拉取專案模板並建立新專案Github
- 優秀互動案例分享——資訊展示類
- 騰訊天氣前後端互動案例後端
- Python高階 -- 08 MySQL與Python互動PythonMySql
- python專案例項:抓取網頁時間段內的請求次數、頻寬Python網頁
- Python_smtp 郵件互動Python
- 如何進入python互動模式Python模式
- C#與Python互動方式C#Python