1. 程式人生 > >pygame模組引數彙總(python遊戲程式設計)

pygame模組引數彙總(python遊戲程式設計)

一、HelloWorld

1 pygame.init()     #初始函式,使用pygame的第一步;
2 pygame.display.set_mod((600,500),0,32)     #生成主螢幕screen;第一個引數是螢幕大小,第二個0表示不使用特性,可用FULLSCREEN,RESIZEBLE,NOFRAME,DOUBLEBUF(雙緩衝,使用時需用pygame.display.flip()來重新整理螢幕)等替換,32表示色深;
3 pygame.display.set_caption("string")     #命名
4 pygame.display.update()        #
重新整理 5 pygame.display.list_modes() #檢視本地顯示器支援的解析度; 6 screen.fill(0,0,0) #填充

二、繪圖

pygame.draw.rect(surface,color,Rect,width=0) 畫一個矩形,Rect為兩個座標元組的元組;

(一)rect(矩形)引數屬性

 1 r.left         左邊x座標的整數值
 2 r.right        右邊x座標的整數值
 3 r.top         頂部y座標的整數值
 4 r.bottom      底部y座標的整數值
 5
r.centerx 中央x座標整數值 6 r.centery 中央y座標整數值 7 r.width 寬度 8 r.height 高度 9 r.size 即元組(width,height) 10 r.topleft (left,top) 11 r.topright (right,top) 12 r.bottomleft (left,bottom) 13 r.bottomright (right,bottom) 14 r.midleft (left,centery) 15 r.midright (right,centery)
16 r.midtop (centerx,top) 17 r.midbottom (centerx,bottom)

(二)其他形狀

1 pygame.draw.polygon(surface,color,pointlist,width=0)    多邊形
2 pygame.draw.circle(surface,color,pos,radius,width=0)      圓
3 pygame.draw.ellipse(surface,color,Rect,width=0)         橢圓
4 pygame.draw.arc(surface,color,Rect,start_angle,stop_angle,width=1) 圓弧
5 pygame.draw.line(surface,color,start_pos,end_pos,width=1)    直線;
6 pygame.draw.lines(surface,color,closed,pointlist,width=1)     closed為一bool值,表示是否封閉;
7 pygame.draw.aaline(surface,color,start_pos,end_pos,width=1)    一根平滑的線;
8 pygame.draw.aalines(surface,color,closed,pointlist,width=1)    一系列平滑的線;

(三)font(以圖形模式輸出文字)

1.pygame.font.Font("字型","字號"*)

2.my_font.render(text,True,(255,255,255)) 使用已有的文字建立一個位圖image,返回值為一個image;對於點陣圖可用get_height(),get_width()的方法獲得高與寬;True表示是否抗鋸齒,第三個為字型顏色,還可以有第四個為背景色,沒有時就為預設的透明;

3.Font()使用的是字型檔案,要使用系統中的字型需用SysFont(),但一些中文擴充套件的字型不是很好用。

4.screen.blit(image,(100,100))將點陣圖繪製到螢幕上,screen為建立的主屏;

5.pygame.font.get_fonts()檢視當前系統所有可使用的字型

三、圖片處理

pygame支援的圖片格式有:JPEG,PNG,GIF,BMP,PCX,TGA,TIF,LBM,PBM,XPM

 1 pygame.image.load("圖片路徑").conver()        將圖片處理為surface物件,如果使用conver_alpha()則保留了Alpha通道資訊(可透明),使用時用blit()函式來新增到顯示屏
 2 pygame.Surface((250,250),flags,depth)        建立一個surface物件,如果不指定尺寸則會建立和螢幕一樣大小;flags為可選,有SRCALPHA(保留Alpha通道)、HWSURFACE(優化)兩個選擇,depth為色深;
 3 screen.subsurface((0,0),(80,80))           子表面物件;
 4 screen.set_at(pos,color)                   設定一個畫素的色彩;
 5 screen.get_at(pos)                        獲取某一畫素的色彩,不過此操作的反應比較慢;
 6 pygame.transform.scale(surface,(width//2,height//2)    縮放圖片
 7 pygame.transform.smoothscale(surface,(width,height)    縮放圖片,比scale慢,但效果更好;
8 pygame.sprite.Group()    精靈組,一個簡單的實體容器; 9 pygame.sprite.add(sprite) 新增精靈物件; 10 pygame.sprite.update(ticks) 11 pygame.sprite.draw(screen) 12 pygame.sprite.collide_rect(arrow,dragon) 衝突
13 screen.set_clip(0,400,200,600) 設定裁剪區域; 14 screen.get_clip()       獲得裁剪區域

 四、事件event

1 pygame.event.get()    獲取事件的返回值,使用event.type == 進行區分
2 pygame.event.wait()    等待發生一個事件才會繼續下去;
3 pygame.event.poll()    會根據現在的情形返回一個真實的事件
4 pygame.event.set_blocked(事件名)    過濾
5 pygame.event.set_allowed() 允許事件

 自定義事件

1 my_event = pygame.event.Event(KEYDOWN,key=K_SPACE,mod=0,unicode=u' ')
2 pygame.event.post(my_event)

pygame所有事件type

 1 QUIT             退出;
 2 ACTIVEEVENT     pygame被啟用或隱藏;
 3 KEYDOWN         區分不同鍵 event.key == pygame.K_a,pygame使用keys=pygame.key.get_pressed()來輪詢鍵盤介面,返回的是所有按下鍵值的元組;用keys[K_b]方式來核對鍵值;K_b也可以是鍵值Unicode碼;如果mod & KMOD_CTRL為真的話表示同時按下Ctrl鍵;key.get_mods()組合鍵,key.set_repeat()重複事件;key.name()接受鍵值返回鍵名;
 4 KEYUP            按鍵放開
 5 MOUSEMOTION     含event.pos,event.rel,event.buttons屬性,用mouse_x,mouse_y = event.pos進行確認,pygame.mouse.get_pos()返回滑鼠的當前位置,pygame.mouse.get_rel()獲取滑鼠相對移動,pygame.mouse.get_pressed()返回按鈕狀態陣列(滑鼠三個鍵的狀態)
 6 mouse.set_visible(False) 使滑鼠不可見;
 7 event.set_grab(True)     使滑鼠不會跑出視窗
 8 mouse.set_pos()          設定滑鼠位置
 9 mouse.get_focused()      如果滑鼠在pygame視窗內有效,返回True
10 mouse.set_cursor()       設定滑鼠預設游標式樣;
11 mouse.get_cursor()       獲取滑鼠預設游標式樣;
12 MOUSEBUTTONUP 滑鼠放開 13 MOUSEBUTTONDOWN 滑鼠按下 14 JOYAXISMOTION x手柄移動 15 JOYBALLMOTION 所有手機移動 16 JOYHATMOTION hat手柄移動 17 JOYBUTTONUP 手柄按鍵放開 18 JOYBUTTONDOWN 手柄按鍵按下 19 VIDEORESIZE 視窗縮放; 20 VIDEOEXPOSE 視窗部分公開; 21 USEREVENT 觸發了一個使用者事件;

 五、異常捕捉

1 try:
2     screen = pygame.display.set_mode(SCREEN_SIZE)
3 except pygame.error,e:
4     print("Can't create the display :-(")
5     print(e)
6     exit()

六、時間

1 clock = pygame.time.Clock()    初始化一個clock物件
2 clock.tick()     返回一個上次呼叫的時間,以毫秒為單位
3 clock.tick(30)    控制遊戲繪製的最大幀率為30

七、聲音

(一)sound物件

pygame.mixer.Sound("檔案")讀取聲音物件sound,格式只有wavogg兩種;

物件方法:

 1 fadeout()               淡出時間,可用引數為毫秒;
 2 get_lengh()            獲得聲音檔案長度,以秒為單位;
 3 get_num_channels()        聲音要播放的次數;
 4 play(loop,maxtime)        對讀取的聲音物件可執行播放操作,loop為-1表示無限迴圈,1表示重複兩次,maxtime表示多少毫秒後結束;返回一個Channel物件,失敗則返回None;
 5 set_volum()            設定音量;
 6 stop()                 停止播放;
 7 pygame.mixer.music          背景音樂處理方法
 8 pygame.mixer.music.load()    載入檔案可為mp3和ogg格式;
 9 pygame.mixer.music.play()    播放
10 pygame.mixer.music.stop()    停止,還有pause()和unpause()方法

(二)Channels物件

pygame.mixer.get_num_channels()獲取當前系統可同時播放的聲道數;pygame中預設為8

物件方法:

 1 fadeout()        設定淡出時間
 2 get_busy()       如果正在播放,返回True;
 3 set_endevent()    設定播放完畢時要做的event;
 4 get_endevent()    獲取播放完畢時要做的event,如果沒有則返回None;
 5 get_queue()      獲得佇列中的聲音,如果沒有則返回None;
 6 set_volume()      設定音量;
 7 get_volume()      獲得音量;
 8 pause()          暫停播放;
 9 unpause()        繼續播放;
10 play()           播放;
11 stop()           停止播放;
12 queue()          將一個Sound物件加入佇列,在當前聲音播放完畢後播放;
13 set_num_channels() 自定義聲道數;

(三)music物件

pygame.mixer.pre_init(frequency,size,stereo,buffer) 聲音系統初始化,第一個為取樣率,第二個為量化精度,第三為立體聲效果,第四為緩衝;

物件方法:

1 fadeout()        設定淡出時間
2 set_endevent()    設定播放完畢後事件
3 get_endevent()    獲取播放完畢後進行的事件;
4 set_volume()      設定音量;
5 get_volume()      獲取音量;
6 load()           載入音樂檔案;
7 rewind()         從頭開始播放;
8 get_pos()         獲得當前播放的位置,以毫秒為單位;

相關推薦

pygame模組引數彙總(python遊戲程式設計)

一、HelloWorld 1 pygame.init() #初始函式,使用pygame的第一步; 2 pygame.display.set_mod((600,500),0,32) #生成主螢幕screen;第一個引數是螢幕大小,第二個0表示不使用特性,可用FULLSCREEN,RESI

pythonpygame模組寫掃雷小遊戲

學了python後,在9月初開始比賽,比賽類容是在一個星期內(白天有課,其實只有星期一到星期五晚上和雙休有時間寫程式碼)完成指定的一個程式,程式可以選擇,我選的是掃雷,因為之前有過做五子棋的基礎,完成掃雷也不算難。 程式碼跟有緣人分享一下,資源可以加我qq(2395425694)找我要(記得

Python遊戲程式設計(Pygame)

安裝Pygame pip install pygame C:\Users> pip install pygame Collecting pygame Downloading htt

分享《Python 遊戲程式設計快速上手(第3版)》高清中文版PDF+高清英文版PDF+原始碼

下載:https://pan.baidu.com/s/1n4hyQq1YFkuLiL2G3388fw 更多資料分享:http://blog.51cto.com/3215120 《Python 遊戲程式設計快速上手(第3版)》高清中文版PDF+高清英文版PDF+原始碼高清中文版,帶目錄和書籤,文字能夠複製貼

python遊戲程式設計——烏龜和魚類場景程式設計

綜合舉例:     遊戲程式設計:按以下要求定義一個烏龜類和魚類並嘗試編寫遊戲。 O    假設遊戲場景為範圍(x, y)為0<=x<=10,0<=y<=10 ·     

Python個人學習筆記】---《Python遊戲程式設計入門》第二章小結挑戰習題(二)

問題:選取一個示列,例如,繪製線條示例,修改它以便用隨機的值繪製1000個線條。瞭解一下random庫和random.randint()函式。 最開始想法是,用pygame.draw.line(Surface, color, start_pos, end_pos, width) 來

Python個人學習筆記】---《Python遊戲程式設計入門》第二章小結挑戰習題(三)

問題:繪製矩形示列是一個圍繞螢幕移動形狀的示列,任何時候,矩形碰到螢幕邊界時,矩形都會改變顏色。 把 每次碰撞時改變的顏色用列表來歸納並計算反彈次數作為索引是個不錯的思路。 程式碼如下: import sys import pygame from pygame.locals i

Python遊戲程式設計快速上手pdf

第1章 安裝Python 11.1 下載和安裝Python 11.2 啟動IDLE 21.3 如何使用本書 31.4 尋求線上幫助 4第2章 互動式shell 62.1 一些簡單的數學知識 62.2 計算表示式 72.4 本章小結 12第3章 編寫程式 133.1 字串 133.2 字串連線 143.3 在I

pygame模組中的小遊戲

終於到最後一個專案了,一個叫做’天上掉秤砣的遊戲‘, 從邏輯上理解這個遊戲挺容易的,說到底就是不讓秤砣砸中香蕉,大家小時候也玩過的一種遊戲,還記得小時候玩過的“小霸王遊戲機”嗎?作為一個遊戲,那肯定要有開始,執行和結束。所有的一切由你控制,最重要的當然是執行,遊戲的規則邏輯

python寫五子棋小遊戲pygame模組

第一篇部落格 暑假學了十幾天python,然後用pygame模組寫了一個五子棋的小遊戲,程式碼跟有緣人分享一下,然後一些資源可以加我qq(2395425694)找我要(記得評論點贊)。 import numpy as np import pygame import sys impor

PythonPygame模組設計遊戲

Pygame是一個跨平臺Python模組,專為電子遊戲設計,包含影象、聲音。建立在SDL基礎上,允許實時電子遊戲研發而無需被低階語言(如機器語言和組合語言)束縛。 Pygame的歷史 Pygame是一

Python:pygame遊戲程式設計之旅五(遊戲介面文書處理詳解)

     再簡單的遊戲介面中均涉及文書處理,本節主要解讀一下pygame模組中對文字及字型的處理方式。 同樣,以例項進行講解,先看看程式碼: #!/usr/bin/env python # -*- coding: utf-8 -*- import sys import

python遊戲-pygame模組

一、tkinter模組的GUI   基本上使用tkinter來開發GUI應用需要以下5個步驟: 匯入tkinter模組中我們需要的東西。 建立一個頂層視窗物件並用它來承載整個GUI應用。 在頂層視窗物件上新增GUI元件。 通過程式碼將這些GUI元件的功能組織起來。 進入主事件迴圈(main loop)。

python pygame模塊 打飛機遊戲

機器 con wid 初始化 imp convert turn 每次 調整 settings.py用於設置屏幕的基本設置 # -*- coding: gbk -*- __author__ = ‘HZQ‘ import pygame class Settings():

linux 核心模組程式設計模組引數(四)

通過巨集module_param指定模組引數,模組引數用於在載入模組時傳遞給模組。 module_param(name, type, perm) name是模組引數的名字 type是這個引數的型別,常見值:bool、int、charp(字串型) perm是模組

Python菜鳥快樂遊戲程式設計_pygame(4)

Python菜鳥快樂遊戲程式設計_pygame(博主錄製,2K解析度,超高清) https://study.163.com/course/courseMain.htm?courseId=1006188025&share=2&shareId=400000000398149 為了熟悉鍵盤,

Python菜鳥快樂遊戲程式設計_pygame(5)

Python菜鳥快樂遊戲程式設計_pygame(博主錄製,2K解析度,超高清) https://study.163.com/course/courseMain.htm?courseId=1006188025&share=2&shareId=400000000398149  

Python菜鳥快樂遊戲程式設計_pygame(2)

Python菜鳥快樂遊戲程式設計_pygame(博主錄製,2K解析度,超高清) https://study.163.com/course/courseMain.htm?courseId=1006188025&share=2&shareId=400000000398149  

Python菜鳥快樂遊戲程式設計_pygame(3)

Python菜鳥快樂遊戲程式設計_pygame(博主錄製,2K解析度,超高清) https://study.163.com/course/courseMain.htm?courseId=1006188025&share=2&shareId=400000000398149  

Python開發程式設計入門培訓課程——模組學習

  Python程式設計中的模組指的是什麼呢?Python程式設計入門培訓給大家分享下有關模組的知識。   模組簡單說就是一堆程式碼實現某個功能,Python為開發人員提供了豐富的模組,通過這些模組,我們可以快速開發出功能強大的程式。   具體來說Python模組有什麼用?   1、模組內有許多函式