這兩天學習數據結構和算法,有時感覺並不如直接做項目來的有趣。剛剛學完python的基本使用,現在剛好趁熱打鐵做個小項目。
由於本人一直很想制作一款游戲,就想使用Python制作一個基礎的游戲。搜了一下資料,看到一個很便於使用的庫,也就是pygame。
pygame介紹
pygame是一個建立在SDL(Simple DirectMedia Layer)上的Python模塊,是一個跨平台模塊。SDL是用C寫的,也可以用C++開發,也有很多語言,pygame就是一個Python中使用的庫。
安裝pygame
從www.pygame.org下載,挑選合適自己系統和Python版本安裝,64位的win系統可能會遇到一些困難,據我實驗,使用win32位版本的pygame庫是可以在64位電腦上使用的。具體安裝遇到問題,善用搜索引擎就可以解決,在此不贅述。
如果你安裝好了pygame,可以用以下的代碼,在自己的Python解釋器上驗證是否安裝好了:
>>> import pygame >>> print pygame.ver 1.9.1release
當然,出現的版本可能和我不同,並沒有太大的差別。確定import沒有問題后,就說明有了pygame庫。
使用pygame
pygame有很多模塊,以下是概覽:
模塊名 | 功能 |
---|---|
pygame.cdrom | 訪問光驅 |
pygame.cursors | 加載光標 |
pygame.display | 訪問顯示設備 |
pygame.draw | 繪制形狀、線和點 |
pygame.event | 管理事件 |
pygame.font | 使用字體 |
pygame.image | 加載和存儲圖片 |
pygame.joystick | 使用游戲手柄或者 類似的東西 |
pygame.key | 讀取鍵盤按鍵 |
pygame.mixer | 聲音 |
pygame.mouse | 鼠標 |
pygame.movie | 播放視頻 |
pygame.music | 播放音頻 |
pygame.overlay | 訪問高級視頻疊加 |
pygame | 就是我們在學的這個東西了…… |
pygame.rect | 管理矩形區域 |
pygame.sndarray | 操作聲音數據 |
pygame.sprite | 操作移動圖像 |
pygame.surface | 管理圖像和屏幕 |
pygame.surfarray | 管理點陣圖像數據 |
pygame.time | 管理時間和幀信息 |
pygame.transform | 縮放和移動圖像 |
好了,我們來寫一個pygame版的Hello,world!
下面是代碼:
# -*- coding: utf8 -*- import pygame #導入pygame庫 from sys import exit #向sys模塊借一個exit函數用來退出程序 pygame.init() #初始化pygame,為使用硬件做准備 screen = pygame.display.set_mode((300, 200), 0, 32) #創建了一個窗口 pygame.display.set_caption("Hello, World!") #設置窗口標題 while True: #主循環 for event in pygame.event.get(): if event.type == pygame.QUIT: #接收到退出事件后退出程序 pygame.quit() exit() screen.fill((200,200,200)) #將背景圖畫上去 pygame.display.update() #刷新一下畫面
將這段代碼輸入並運行后,你將會得到這樣的畫面:
點擊關閉會正常關閉,而窗口的標題變成了Hello, World!
這段程序里,提到了很多新的概念,比如說事件。這些概念我之后將會繼續說明。
代碼給上了足夠的注釋,相信每一個熟悉Python的朋友都可以讀懂。
如果並沒有接觸Python或者沒有學習過編程,可以看我博客之前對於《Python核心編程》的學習筆記,也可以自己學習。
Python是一門很舒服的語言。