發(fā)布時間:2023-11-27 18:13:48 瀏覽量:108次
Pygame的歷史
Pygame是一個利用SDL庫的寫就的游戲庫,SDL呢,全名Simple DirectMedia Layer,是一位叫做Sam Lantinga的大牛寫的,據(jù)說他為了讓Loki(致力于向Linux上移植Windows的游戲的一家大好人公司,可惜已經(jīng)倒閉,唉好人不長命啊……)更有效的工作,創(chuàng)造了這個東東。
SDL是用C寫的,不過它也可以使用C++進(jìn)行開發(fā),當(dāng)然還有很多其它的語言,Pygame就是Python中使用它的一個庫。Pygame已經(jīng)存在很多時間了,許多優(yōu)秀的程序員加入其中,把Pygame做得越來越好。
入門Python其實很容易,但是我們要去堅持學(xué)習(xí),每一天堅持很困難,我相信很多人學(xué)了一個星期就放棄了,為什么呢?其實沒有好的學(xué)習(xí)資料給你去學(xué)習(xí),你們是很難堅持的,這是小編收集的Python入門學(xué)習(xí)資料關(guān)注,轉(zhuǎn)發(fā),私信小編“01”,即可免費領(lǐng)?。∠M麑δ銈冇袔椭?/strong>
安裝Pygame
可以從 www.pygame.org 下載pygame,選擇合適你的操作系統(tǒng)和合適的版本,當(dāng)然你也可以使用pip安裝。安裝成功后可用下面方法確認(rèn)有沒有安裝成功:
>>>import pygame
pygame 1.9.4
Hello from the pygame community. https://www.pygame.org/contribute.html
>>>復(fù)制代碼
另外說一下,就產(chǎn)品而言,Pygame更致力于2D游戲的開發(fā),也就是說,你可以用Pygame寫一個植物大戰(zhàn)僵尸,但是寫一個魔獸世界則相當(dāng)困難……請不要做出鄙夷的目光,底層的東西永遠(yuǎn)是相通的,而且對于新手而言,從簡單的2D入手才是正途。
這是python開發(fā)等IT交流群:887934385 提供免費學(xué)習(xí)資料,多交流學(xué)習(xí)
使用Pygame
有些模塊可能在某些平臺上不存在,你可以用None來測試一下。
if pygame.transform is None:
print 'The transform module is not available!'
exit()復(fù)制代碼
Hello Pygame
剛開始學(xué)習(xí)一門編程語言的時候總會寫一個Hello World程序,但那只是在終端上打印一句話,現(xiàn)在我們來點更帥的!寫好以后會是這樣子的效果:
代碼如下:
# _*_ coding: utf-8 _*_
import pygame
from pygame.locals import *
from sys import exit
background_image_filename = 'sea.jpg'
mouse_image_filename = 'fish.png'
# 初始化pygame,為使用硬件做準(zhǔn)備
pygame.init()
# 創(chuàng)建一個窗口
screen = pygame.display.set_mode((640, 480), 0, 32)
# 設(shè)置窗口標(biāo)題
pygame.display.set_caption("hello,world!")
# 加載圖片并轉(zhuǎn)換
background = pygame.image.load(background_image_filename)
mouse_cursor = pygame.image.load(mouse_image_filename)
# 游戲主循環(huán)
while True:
for event in pygame.event.get():
if event.type == QUIT:
# 接收到退出時間后退出程序
exit()
# 將背景圖畫上去
screen.blit(background, (0, 0))
# 獲得鼠標(biāo)位置
x, y = pygame.mouse.get_pos()
# 計算光標(biāo)左上角位置
x -= mouse_cursor.get_width() / 2
y -= mouse_cursor.get_height() / 2
# 將光標(biāo)畫上去
screen.blit(mouse_cursor, (x, y))
# 刷新畫面
pygame.display.update()
復(fù)制代碼
這段代碼中用到了兩張圖片,圖片可以從網(wǎng)上找,讓后用ps簡單修改一下就行。(sea.jpg是背景,fish.png是黃色小魚,fish.png是我用ps摳出來的,背景是透明的)
下面稍微解釋一下比較重要的部分:
set_mode 會返回一個Surface對象,代表了在桌面上出現(xiàn)的那個窗口,三個參數(shù)第一個為元祖,代表分 辨率(必須);第二個是一個標(biāo)志位,具體意思見下表,如果不用什么特性,就指定0;第三個為色深。
convert 函數(shù)是將圖像數(shù)據(jù)都轉(zhuǎn)化為Surface對象,每次加載完圖像以后就應(yīng)該做這件事件(事實上因為 它太常用了,如果你不寫pygame也會幫你做)
convert_alpha 相比convert,保留了Alpha 通道信息(可以簡單理解為透明的部分),這樣我們的光標(biāo)才可以是不規(guī)則的形狀。
游戲的主循環(huán)是一個無限循環(huán),直到用戶跳出。在這個主循環(huán)里做的事情就是不停地畫背景和更新光標(biāo)位置,雖然背景是不動的,我們還是需要每次都畫它, 否則鼠標(biāo)覆蓋過的位置就不能恢復(fù)正常了。
blit 是個重要函數(shù),第一個參數(shù)為一個Surface對象,第二個為左上角位置。畫完以后一定記得用 update 更新一下,否則畫面一片漆黑。
這就是一個pygame程序的大致流程,接下來我們會學(xué)習(xí)更多深層次的東西,并且把各條語句都真正的讀懂。
熱門資訊
探討游戲引擎的文章,介紹了10款游戲引擎及其代表作品,涵蓋了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戲設(shè)計領(lǐng)域和數(shù)字藝術(shù)教育的重要性,歡迎點擊咨詢報名。
2. 手機游戲如何開發(fā)(如何制作傳奇手游,都需要準(zhǔn)備些什么?)
?如何制作傳奇手游,都需要準(zhǔn)備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現(xiàn)在的手游,說明時代在進(jìn)步游戲在更新,更趨于方便化移動化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費、一鍵制作炫酷特效,適合新手小白??靵碓囋?!
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個抉定都將觸發(fā)更多愛恨糾葛的精彩奇遇?!短烀嬗肪哂卸嗑€劇情多結(jié)局,不限主線發(fā)展,高自由...
5. Bigtime加密游戲經(jīng)濟(jì)體系揭秘,不同玩家角色的經(jīng)濟(jì)活動
Bigtime加密游戲經(jīng)濟(jì)模型分析,探討游戲經(jīng)濟(jì)特點,幫助玩家更全面了解這款GameFi產(chǎn)品。
6. 3D動漫建模全過程,不是一般人能學(xué)的會的,會的多不是人?
步驟01:面部,頸部,身體在一起這次我不準(zhǔn)備設(shè)計圖片,我從雕刻進(jìn)入。這一次,它將是一種純粹關(guān)注建模而非整體繪畫的形式。像往常一樣,我從Sphere創(chuàng)建它...
7. 3D動畫軟件你知道幾個?3ds Max、Blender、Maya、Houdini大比拼
當(dāng)提到3D動畫軟件或動畫工具時,指的是數(shù)字內(nèi)容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術(shù)動畫的軟件程序。但是,在3D動畫軟件中還包含了其他類型的...
8. 3D打印技巧揭秘!Cura設(shè)置讓你的模型更堅固
想讓你的3D打印模型更堅固?不妨嘗試一下Cura參數(shù)設(shè)置和設(shè)計技巧,讓你輕松掌握!
?三昧動漫對于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應(yīng)并不會推出《巫師4》。因為《巫師》系列在策劃的時候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
10. 虛幻引擎5節(jié)省存儲空間用這招!緩存的清理與設(shè)置
眾所周知,虛幻引擎5(下面簡稱UE5)特別占用存儲空間,僅一個版本安裝好的文件就有60G,這還不包括我們在使用時保存的工程文件和隨之產(chǎn)生的緩存文件。而...
最新文章
同學(xué)您好!