發(fā)布時(shí)間:2023-11-27 18:13:48 瀏覽量:108次
Pygame的歷史
Pygame是一個(gè)利用SDL庫的寫就的游戲庫,SDL呢,全名Simple DirectMedia Layer,是一位叫做Sam Lantinga的大牛寫的,據(jù)說他為了讓Loki(致力于向Linux上移植Windows的游戲的一家大好人公司,可惜已經(jīng)倒閉,唉好人不長(zhǎng)命啊……)更有效的工作,創(chuàng)造了這個(gè)東東。
SDL是用C寫的,不過它也可以使用C++進(jìn)行開發(fā),當(dāng)然還有很多其它的語言,Pygame就是Python中使用它的一個(gè)庫。Pygame已經(jīng)存在很多時(shí)間了,許多優(yōu)秀的程序員加入其中,把Pygame做得越來越好。
入門Python其實(shí)很容易,但是我們要去堅(jiān)持學(xué)習(xí),每一天堅(jiān)持很困難,我相信很多人學(xué)了一個(gè)星期就放棄了,為什么呢?其實(shí)沒有好的學(xué)習(xí)資料給你去學(xué)習(xí),你們是很難堅(jiān)持的,這是小編收集的Python入門學(xué)習(xí)資料關(guān)注,轉(zhuǎn)發(fā),私信小編“01”,即可免費(fèi)領(lǐng)?。∠M麑?duì)你們有幫助
安裝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寫一個(gè)植物大戰(zhàn)僵尸,但是寫一個(gè)魔獸世界則相當(dāng)困難……請(qǐng)不要做出鄙夷的目光,底層的東西永遠(yuǎn)是相通的,而且對(duì)于新手而言,從簡(jiǎn)單的2D入手才是正途。
這是python開發(fā)等IT交流群:887934385 提供免費(fèi)學(xué)習(xí)資料,多交流學(xué)習(xí)
使用Pygame
有些模塊可能在某些平臺(tái)上不存在,你可以用None來測(cè)試一下。
if pygame.transform is None:
print 'The transform module is not available!'
exit()復(fù)制代碼
Hello Pygame
剛開始學(xué)習(xí)一門編程語言的時(shí)候總會(huì)寫一個(gè)Hello World程序,但那只是在終端上打印一句話,現(xiàn)在我們來點(diǎn)更帥的!寫好以后會(huì)是這樣子的效果:
代碼如下:
# _*_ 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)建一個(gè)窗口
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:
# 接收到退出時(shí)間后退出程序
exit()
# 將背景圖畫上去
screen.blit(background, (0, 0))
# 獲得鼠標(biāo)位置
x, y = pygame.mouse.get_pos()
# 計(jì)算光標(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簡(jiǎn)單修改一下就行。(sea.jpg是背景,fish.png是黃色小魚,fish.png是我用ps摳出來的,背景是透明的)
下面稍微解釋一下比較重要的部分:
set_mode 會(huì)返回一個(gè)Surface對(duì)象,代表了在桌面上出現(xiàn)的那個(gè)窗口,三個(gè)參數(shù)第一個(gè)為元祖,代表分 辨率(必須);第二個(gè)是一個(gè)標(biāo)志位,具體意思見下表,如果不用什么特性,就指定0;第三個(gè)為色深。
convert 函數(shù)是將圖像數(shù)據(jù)都轉(zhuǎn)化為Surface對(duì)象,每次加載完圖像以后就應(yīng)該做這件事件(事實(shí)上因?yàn)?它太常用了,如果你不寫pygame也會(huì)幫你做)
convert_alpha 相比convert,保留了Alpha 通道信息(可以簡(jiǎn)單理解為透明的部分),這樣我們的光標(biāo)才可以是不規(guī)則的形狀。
游戲的主循環(huán)是一個(gè)無限循環(huán),直到用戶跳出。在這個(gè)主循環(huán)里做的事情就是不停地畫背景和更新光標(biāo)位置,雖然背景是不動(dòng)的,我們還是需要每次都畫它, 否則鼠標(biāo)覆蓋過的位置就不能恢復(fù)正常了。
blit 是個(gè)重要函數(shù),第一個(gè)參數(shù)為一個(gè)Surface對(duì)象,第二個(gè)為左上角位置。畫完以后一定記得用 update 更新一下,否則畫面一片漆黑。
這就是一個(gè)pygame程序的大致流程,接下來我們會(huì)學(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è)計(jì)領(lǐng)域和數(shù)字藝術(shù)教育的重要性,歡迎點(diǎn)擊咨詢報(bào)名。
2. 手機(jī)游戲如何開發(fā)(如何制作傳奇手游,都需要準(zhǔn)備些什么?)
?如何制作傳奇手游,都需要準(zhǔn)備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現(xiàn)在的手游,說明時(shí)代在進(jìn)步游戲在更新,更趨于方便化移動(dòng)化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費(fèi)、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費(fèi)、一鍵制作炫酷特效,適合新手小白??靵碓囋?!
4. Steam值得入手的武俠游戲盤點(diǎn),各具特色的快意江湖
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個(gè)抉定都將觸發(fā)更多愛恨糾葛的精彩奇遇?!短烀嬗肪哂卸嗑€劇情多結(jié)局,不限主線發(fā)展,高自由...
5. Bigtime加密游戲經(jīng)濟(jì)體系揭秘,不同玩家角色的經(jīng)濟(jì)活動(dòng)
Bigtime加密游戲經(jīng)濟(jì)模型分析,探討游戲經(jīng)濟(jì)特點(diǎn),幫助玩家更全面了解這款GameFi產(chǎn)品。
6. 3D動(dòng)畫軟件你知道幾個(gè)?3ds Max、Blender、Maya、Houdini大比拼
當(dāng)提到3D動(dòng)畫軟件或動(dòng)畫工具時(shí),指的是數(shù)字內(nèi)容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術(shù)動(dòng)畫的軟件程序。但是,在3D動(dòng)畫軟件中還包含了其他類型的...
7. 3D動(dòng)漫建模全過程,不是一般人能學(xué)的會(huì)的,會(huì)的多不是人?
步驟01:面部,頸部,身體在一起這次我不準(zhǔn)備設(shè)計(jì)圖片,我從雕刻進(jìn)入。這一次,它將是一種純粹關(guān)注建模而非整體繪畫的形式。像往常一樣,我從Sphere創(chuàng)建它...
8. 如何自己開發(fā)一款游戲(游戲開發(fā)入門必看:五大獨(dú)立游戲開發(fā)技巧)
?游戲開發(fā)入門必看:五大獨(dú)立游戲開發(fā)技巧無論您是剛剛起步開發(fā)自己的第一款游戲,還是已經(jīng)制作了幾款游戲,本篇文章中的5大獨(dú)立游戲開發(fā)技巧都可以幫助您更好地設(shè)計(jì)下一款游戲。無論你對(duì)游戲有著什么樣的概念,都
?三昧動(dòng)漫對(duì)于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應(yīng)并不會(huì)推出《巫師4》。因?yàn)椤段讕煛废盗性诓邉澋臅r(shí)候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
10. 3D打印技巧揭秘!Cura設(shè)置讓你的模型更堅(jiān)固
想讓你的3D打印模型更堅(jiān)固?不妨嘗試一下Cura參數(shù)設(shè)置和設(shè)計(jì)技巧,讓你輕松掌握!
最新文章
同學(xué)您好!