亚洲AV免费看深爱成人|日韩av另类一级特黄片在线|中国免费一级黄片|国产av一二三区|亚洲有码AV在线|久久亚洲国产日韩欧美|成人免费AV网站|婷婷一区综合一区|亚洲AV无码导航|高级欧美成人网站

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

pygame游戲開發(fā)從入門到精通(Python之pygame,從入門到精通)

發(fā)布時間:2023-11-27 18:13:48 瀏覽量:114次

?Python之pygame,從入門到精通

pygame游戲開發(fā)從入門到精通(Python之pygame,從入門到精通)

Pygame的歷史

Pygame是一個利用SDL庫的寫就的游戲庫,SDL呢,全名Simple DirectMedia Layer,是一位叫做Sam Lantinga的大牛寫的,據(jù)說他為了讓Loki(致力于向Linux上移植Windows的游戲的一家大好人公司,可惜已經(jīng)倒閉,唉好人不長命啊……)更有效的工作,創(chuàng)造了這個東東。

SDL是用C寫的,不過它也可以使用C++進行開發(fā),當然還有很多其它的語言,Pygame就是Python中使用它的一個庫。Pygame已經(jīng)存在很多時間了,許多優(yōu)秀的程序員加入其中,把Pygame做得越來越好。

入門Python其實很容易,但是我們要去堅持學習,每一天堅持很困難,我相信很多人學了一個星期就放棄了,為什么呢?其實沒有好的學習資料給你去學習,你們是很難堅持的,這是小編收集的Python入門學習資料關(guān)注,轉(zhuǎn)發(fā),私信小編“01”,即可免費領(lǐng)取!希望對你們有幫助

安裝Pygame

可以從 www.pygame.org 下載pygame,選擇合適你的操作系統(tǒng)和合適的版本,當然你也可以使用pip安裝。安裝成功后可用下面方法確認有沒有安裝成功:

>>>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)僵尸,但是寫一個魔獸世界則相當困難……請不要做出鄙夷的目光,底層的東西永遠是相通的,而且對于新手而言,從簡單的2D入手才是正途。

這是python開發(fā)等IT交流群:887934385 提供免費學習資料,多交流學習

使用Pygame

有些模塊可能在某些平臺上不存在,你可以用None來測試一下。

if pygame.transform is None:
    print 'The transform module is not available!'
    exit()復(fù)制代碼

Hello Pygame

剛開始學習一門編程語言的時候總會寫一個Hello World程序,但那只是在終端上打印一句話,現(xiàn)在我們來點更帥的!寫好以后會是這樣子的效果:

代碼如下:

pygame游戲開發(fā)從入門到精通(Python之pygame,從入門到精通)

# _*_ coding: utf-8 _*_
import pygame

from pygame.locals import *
from sys import exit
background_image_filename = 'sea.jpg'
mouse_image_filename = 'fish.png'

# 初始化pygame,為使用硬件做準備
pygame.init()

# 創(chuàng)建一個窗口
screen = pygame.display.set_mode((640, 480), 0, 32)

# 設(shè)置窗口標題
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))

    # 獲得鼠標位置
    x, y = pygame.mouse.get_pos()
    # 計算光標左上角位置
    x -= mouse_cursor.get_width() / 2
    y -= mouse_cursor.get_height() / 2

    # 將光標畫上去
    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ù)第一個為元祖,代表分 辨率(必須);第二個是一個標志位,具體意思見下表,如果不用什么特性,就指定0;第三個為色深。

convert 函數(shù)是將圖像數(shù)據(jù)都轉(zhuǎn)化為Surface對象,每次加載完圖像以后就應(yīng)該做這件事件(事實上因為 它太常用了,如果你不寫pygame也會幫你做)

convert_alpha 相比convert,保留了Alpha 通道信息(可以簡單理解為透明的部分),這樣我們的光標才可以是不規(guī)則的形狀。

游戲的主循環(huán)是一個無限循環(huán),直到用戶跳出。在這個主循環(huán)里做的事情就是不停地畫背景和更新光標位置,雖然背景是不動的,我們還是需要每次都畫它, 否則鼠標覆蓋過的位置就不能恢復(fù)正常了。

blit 是個重要函數(shù),第一個參數(shù)為一個Surface對象,第二個為左上角位置。畫完以后一定記得用 update 更新一下,否則畫面一片漆黑。

這就是一個pygame程序的大致流程,接下來我們會學習更多深層次的東西,并且把各條語句都真正的讀懂。

pygame游戲開發(fā)從入門到精通(Python之pygame,從入門到精通)

熱門課程推薦

熱門資訊

請綁定手機號

x

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯(lián)系,請保持電話暢通!
確定