一、介紹
1.1? 定義
Pygame是一種流行的Python游戲開發庫,它提供了許多功能,使開發人員可以輕松創建2D游戲。它具有良好的跨平臺支持,可以在多個操作系統上運行,例如Windows,MacOS和Linux。在本文中,我們將介紹Pygame庫的特點和用法,幫助您了解如何使用Pygame庫進行游戲開發。它提供了諸多操作模塊,比如圖像模塊(image)、聲音模塊(mixer)、輸入/輸出(鼠標、鍵盤、顯示屏)模塊等。
官方地址:https://www.pygame.org/
1.2 相關函數
1)?pygame.sprite 代表游戲圖像的更高級別的對象
pygame.sprite.Sprite:可見游戲對象的簡單基類。
pygame.sprite.WeakSprite:Sprite 的子類,弱引用其組。這意味著它所屬的任何組如果在其他地方沒有被引用,都會被自動垃圾收集。
pygame.sprite.DirtySprite:Sprite 的子類,具有更多的屬性和功能。
pygame.sprite.Group:用于保存和管理多個 Sprite 對象的容器類。
pygame.sprite.WeakDirtySprite:WeakSprite 和 DirtySprite 的子類,結合了這兩個類的優點。
pygame.sprite.RenderPlain:與 pygame.sprite.Group 相同
pygame.sprite.RenderClear:與 pygame.sprite.Group 相同
pygame.sprite.RenderUpdates:跟蹤臟更新的組子類。
pygame.sprite.OrderedUpdates:RenderUpdates 子類,按添加順序繪制 Sprite。
pygame.sprite.LayeredUpdates:LayeredUpdates 是一個精靈組,它像 OrderedUpdates 一樣處理圖層和繪制。
pygame.sprite.LayeredDirty:LayeredDirty 組適用于 DirtySprite 對象。子類 LayeredUpdates。
pygame.sprite.GroupSingle:容納單個精靈的組容器。
pygame.sprite.spritecollide:查找組中與另一個精靈相交的精靈。
pygame.sprite.collide_rect:使用矩形檢測兩個精靈之間的碰撞。
pygame.sprite.collide_rect_ratio:使用按比例縮放的矩形來檢測兩個精靈之間的碰撞。
pygame.sprite.collide_circle:使用圓圈檢測兩個精靈之間的碰撞。
pygame.sprite.collide_circle_system:使用按比例縮放的圓圈來檢測兩個精靈之間的碰撞。
pygame.sprite.collide_mask:使用遮罩檢測兩個精靈之間的碰撞。
pygame.sprite.groupcollide:找到兩組之間發生碰撞的所有精靈。
pygame.sprite.spritecollideany:簡單測試精靈是否與組中的任何內容相交。
2)pygame.Surface 圖像和屏幕的對象
pygame.Surface.blit:將一幅圖像繪制到另一幅圖像上
pygame.Surface.blitz:將許多圖像繪制到另一個圖像上
pygame.Surface.convert:更改圖像的像素格式
pygame.Surface.convert_alpha:更改圖像的像素格式,包括每個像素 alpha
pygame.Surface.copy:創建 Surface 的新副本
pygame.Surface.fill:用純色填充表面
pygame.Surface.scroll:將表面圖像移動到位
pygame.Surface.set_colorkey:設置透明色鍵
pygame.Surface.get_colorkey:獲取當前透明色鍵
pygame.Surface.set_alpha:設置完整 Surface 圖像的 alpha 值
pygame.Surface.get_alpha:獲取當前Surface透明度值
pygame.Surface.lock:鎖定 Surface 內存以進行像素訪問
pygame.Surface.unlock:從像素訪問中解鎖 Surface 內存
pygame.Surface.mustlock:測試 Surface 是否需要鎖定
pygame.Surface.get_locked:測試 Surface 當前是否已鎖定
pygame.Surface.get_locks:獲取 Surface 的鎖
pygame.Surface.get_at:獲取單個像素的顏色值
pygame.Surface.set_at:設置單個像素的顏色值
pygame.Surface.get_at_mapped:獲取單個像素處的映射顏色值
pygame.Surface.get_palette:獲取 8 位 Surface 的顏色索引調色板
pygame.Surface.get_palette_at:獲取調色板中單個條目的顏色
pygame.Surface.set_palette:設置 8 位 Surface 的調色板
pygame.Surface.set_palette_at:設置 8 位 Surface 調色板中單個索引的顏色
pygame.Surface.map_rgb:將顏色轉換為映射顏色值
pygame.Surface.unmap_rgb:將映射的整數顏色值轉換為 Color
pygame.Surface.set_clip:設置Surface的當前剪切區域
pygame.Surface.get_clip:獲取Surface當前的裁剪區域
pygame.Surface.subsurface:創建一個引用其父級的新曲面
pygame.Surface.get_parent:找到次表面的父級
pygame.Surface.get_abs_parent:找到地下表面的頂層父級
pygame.Surface.get_offset:找到父級內部子表面的位置
pygame.Surface.get_abs_offset:查找子表面在其頂級父表面內的絕對位置
pygame.Surface.get_size:獲取 Surface 的尺寸
pygame.Surface.get_width:獲取 Surface 的寬度
pygame.Surface.get_height:獲取 Surface 的高度
pygame.Surface.get_rect:獲取 Surface 的矩形面積
pygame.Surface.get_bitsize:獲取 Surface 像素格式的位深度
pygame.Surface.get_bytesize:獲取每個 Surface 像素使用的字節數
pygame.Surface.get_flags:獲取用于 Surface 的附加標志
pygame.Surface.get_pitch:獲取每個 Surface 行使用的字節數
pygame.Surface.get_masks:在顏色和映射整數之間轉換所需的位掩碼
pygame.Surface.set_masks:設置在顏色和映射整數之間轉換所需的位掩碼
pygame.Surface.get_shifts:顏色和映射整數之間轉換所需的位移位
pygame.Surface.set_shifts:設置顏色和映射整數之間轉換所需的位移位
pygame.Surface.get_losses:用于在顏色和映射整數之間轉換的有效位
pygame.Surface.get_bounding_rect:找到包含數據的最小矩形
pygame.Surface.get_view:返回 Surface 像素的緩沖區視圖。
pygame.Surface.get_buffer:獲取 Surface 像素的緩沖區對象。
pygame.Surface._pixels_address:像素緩沖區地址
pygame.Surface.premul_alpha:返回表面的副本,其中 RGB 通道預先乘以 alpha 通道。
3)pygame.surfarray 操作圖像像素數據?
pygame.surfarray.array2d:將像素復制到二維數組中
pygame.surfarray.pixels2d:將參考像素放入二維數組中
pygame.surfarray.array3d:將像素復制到 3d 數組中
pygame.surfarray.pixels3d:將參考像素放入 3d 數組中
pygame.surfarray.array_alpha:將像素 alpha 復制到二維數組中
pygame.surfarray.pixels_alpha:將像素 alpha 參考到二維數組中
pygame.surfarray.array_red:將紅色像素復制到二維數組中
pygame.surfarray.pixels_red:將紅色參考像素放入二維數組中。
pygame.surfarray.array_green:將綠色像素復制到二維數組中
pygame.surfarray.pixels_green:將綠色參考像素放入二維數組中。
pygame.surfarray.array_blue:將藍色像素復制到二維數組中
pygame.surfarray.pixels_blue:將藍色參考像素放入二維數組中。
pygame.surfarray.array_colorkey:將 colorkey 值復制到二維數組中
pygame.surfarray.make_surface:將數組復制到新表面
pygame.surfarray.blit_array:直接從數組值進行 Blit
pygame.surfarray.map_array:將 3d 數組映射到 2d 數組
pygame.surfarray.use_arraytype:設置用于表面陣列的陣列系統
pygame.surfarray.get_arraytype:獲取當前活動的數組類型。
pygame.surfarray.get_arraytypes:獲取當前支持的陣列系統類型。
4)python 管理pygame的頂級功能
pygame.init:初始化所有導入的 pygame 模塊
pygame.quit:取消初始化所有 pygame 模塊
pygame.get_init:如果 pygame 當前已初始化,則返回 True
pygame.error:標準 pygame 異常
pygame.get_error:獲取當前錯誤信息
pygame.set_error:設置當前錯誤信息
pygame.get_sdl_version:獲取SDL的版本號
pygame.get_sdl_byteorder:獲取SDL的字節順序
pygame.register_quit:注冊一個在 pygame 退出時調用的函數
pygame.encode_string:對 Unicode 或 bytes 對象進行編碼
pygame.encode_file_path:將 Unicode 或 bytes 對象編碼為文件系統路徑
?5)pygame.BufferProxy 表面像素的陣列協議視圖
該類是 Surface?對象通過數組協議導出的一個緩沖對象
pygame.BufferProxy.parent:返回該 BufferProxy 的 Surface 對象, 或者調用 BufferProxy 的對象
pygame.BufferProxy.length:返回緩沖區的長度,單位是字節。類似于len字段
pygame.BufferProxy.length:將緩沖區的數據拷貝并返回,為str或bytes對象
pygame.BufferProxy.write:將字節寫入緩沖區
6)pygame.Color 顏色表示
該類是pygame中用于描述顏色的模塊
pygame.Color.r:取或設置 Color 的紅色值。
pygame.Color.g:取或設置 Color 的綠色值。
pygame.Color.b:取或設置 Color 的藍色值。
pygame.Color.a:取或設置 Color 的 alpha 值。
pygame.Color.cmy:取或設置 Color 的 CMY 表示形式。
pygame.Color.white:取或設置 Color 的 HSVA 表示形式。
pygame.Color.hsla:取或設置 Color 的 HSLA 表示形式。
pygame.Color.i1i2i3:取或設置 Color 的 I1I2I3 表示形式。
pygame.Color.normalize:返回顏色的標準化 RGBA 值。
pygame.Color. Correct_gamma:將特定的伽馬值應用于顏色。
pygame.Color.set_length:將 Color 中的元素數量設置為 1、2、3 或 4。
pygame.Color.grayscale:返回顏色的灰度
pygame.Color.lerp:返回給定 Color 的線性插值。
pygame.Color.premul_alpha:返回一個 Color,其中 r、g、b 分量已乘以 alpha。
pygame.Color.update:設置顏色元素
7)pygame.cursors 加載和編譯光標圖像
pygame.cursors.compile:從簡單字符串創建二進制游標數據
pygame.cursors.load_xbm:從 XBM 文件加載游標數據
pygame.cursors.Cursor:代表光標的 pygame 對象
8)pygame.display 配置顯示表面?
pygame.display.init:初始化顯示模塊
pygame.display.quit:取消初始化顯示模塊
pygame.display.get_init:如果顯示模塊已初始化,則返回 True
pygame.display.set_mode:初始化窗口或屏幕以進行顯示
pygame.display.get_surface:獲取當前設置的顯示表面的引用
pygame.display.flip:將完整顯示 Surface 更新到屏幕
pygame.display.update:更新軟件顯示的部分屏幕
pygame.display.get_driver:獲取pygame顯示后端的名稱
pygame.display.Info:創建視頻顯示信息對象
pygame.display.get_wm_info:獲取有關當前窗口系統的信息
pygame.display.get_desktop_sizes:獲取活動桌面的大小
pygame.display.list_modes:獲取可用全屏模式的列表
pygame.display.mode_ok:為顯示模式選擇最佳顏色深度
pygame.display.gl_get_attribute:獲取當前顯示器的 OpenGL 標志的值
pygame.display.gl_set_attribute:請求顯示模式的 OpenGL 顯示屬性
pygame.display.get_active:當屏幕上的顯示處于活動狀態時返回 True
pygame.display.iconify:圖標化顯示表面
pygame.display.toggle_fullscreen:在全屏和窗口顯示之間切換
pygame.display.set_gamma:更改硬件伽瑪斜坡
pygame.display.set_gamma_ramp:使用自定義查找更改硬件伽瑪斜坡
pygame.display.set_icon:更改顯示窗口的系統圖像
pygame.display.set_caption:設置當前窗口標題
pygame.display.get_caption:獲取當前窗口標題
pygame.display.set_palette:設置索引顯示的顯示調色板
pygame.display.get_num_displays:返回顯示數量
pygame.display.get_window_size:返回窗口或屏幕的大小
pygame.display.get_allow_screensaver:返回是否允許屏幕保護程序運行。
pygame.display.set_allow_screensaver:設置屏保是否可以運行
?9)pygame.draw 在曲面上繪制簡單的形狀,例如直線和橢圓
pygame.draw.rect:畫一個矩形
pygame.draw.polygon:畫一個多邊形
pygame.draw.circle:畫一個圓圈
pygame.draw.ellipse:畫一個橢圓
pygame.draw.arc:畫一條橢圓弧
pygame.draw.line:畫一條直線
pygame.draw.lines:繪制多條連續的直線段
pygame.draw.aline:畫一條抗鋸齒直線
pygame.draw.aalines:繪制多個連續的抗鋸齒直線段
10)pygame.event 管理來自各種輸入設備和窗口平臺的傳入事件
pygame.event.pump:內部處理 pygame 事件處理程序
pygame.event.get:從隊列中獲取事件
pygame.event.poll:從隊列中獲取單個事件
pygame.event.wait:等待隊列中的單個事件
pygame.event.peek:測試事件類型是否正在隊列中等待
pygame.event.clear:從隊列中刪除所有事件
pygame.event.event_name:從事件 ID 中獲取字符串名稱
pygame.event.set_blocked:控制隊列中允許哪些事件
pygame.event.set_allowed:控制隊列中允許哪些事件
pygame.event.get_blocked:測試某種類型的事件是否被隊列阻止
pygame.event.set_grab:控制與其他應用程序共享輸入設備
pygame.event.get_grab:測試程序是否共享輸入設備
pygame.event.set_keyboard_grab:抓取可以捕獲系統鍵盤快捷鍵,例如 Alt+Tab 或 Meta/Super 鍵。
pygame.event.get_keyboard_grab:獲取當前鍵盤抓取狀態
pygame.event.post:將新事件放入隊列中
pygame.event.custom_type:制作自定義用戶事件類型
pygame.event.Event:用于表示事件的 pygame 對象
?11)pygame.examples 各種程序演示了各個 pygame 模塊的使用
pygame.examples.alien.main:播放完整的外星人示例
pygame.examples.stars.main:運行一個簡單的星空示例
pygame.examples.chimp.main:擊中移動的黑猩猩
pygame.examples.moveit.main:在屏幕上顯示動畫對象
pygame.examples.fonty.main:運行字體渲染示例
pygame.examples.freetype_misc.main:運行 FreeType 渲染示例
pygame.examples.vgrade.main:顯示垂直漸變
pygame.examples.eventlist.main:顯示 pygame 事件
pygame.examples.arraymo.main:顯示各種沖浪陣列效果
pygame.examples.sound.main:加載并播放聲音
pygame.examples.sound_array_demos.main:播放各種sndarray效果
pygame.examples.liquid.main:顯示動畫液體效果
pygame.examples.glcube.main:使用 OpenGL 顯示動畫 3D 立方體
pygame.examples.scrap_clipboard.main:訪問剪貼板
pygame.examples.mask.main:使用碰撞檢測顯示多個圖像相互反彈
pygame.examples.testsprite.main:顯示大量移動的精靈
pygame.examples.headless_no_windows_needed.main:寫入一個圖像文件,該圖像文件是輸入文件的平滑縮放副本
pygame.examples.joystick.main:演示操縱桿功能
pygame.examples.blend_fill.main:演示各種 Surface.fill 方法混合選項
pygame.examples.blit_blends.main:使用 Surface.fill 的替代添加劑填充
pygame.examples.cursors.main:顯示兩個不同的自定義光標
pygame.examples.pixelarray.main:顯示各種像素陣列生成的效果
pygame.examples.scaletest.main:使用 smoothscale 交互縮放圖像
pygame.examples.midi.main:運行一個 MIDI 示例
pygame.examples.scroll.main:運行一個顯示放大圖像的 Surface.scroll 示例
pygame.examples.camera.main:顯示從連接的攝像機實時捕獲的視頻
pygame.examples.playmus.main:播放音頻文件
?12)pygame.font 加載和渲染 TrueType 字體
pygame.font.init:初始化字體模塊
pygame.font.quit:取消初始化字體模塊
pygame.font.get_init:true 如果字體模塊已初始化
pygame.font.get_default_font:獲取默認字體的文件名
pygame.font.get_sdl_ttf_version:獲取SDL_ttf版本
pygame.font.get_fonts:獲取所有可用的字體
pygame.font.match_font:在系統上查找特定字體
pygame.font.SysFont:從系統字體創建一個 Font 對象
pygame.font.Font:從文件創建一個新的 Font 對象
?13)pygame.freetype 增強的 pygame 模塊用于加載和渲染字體
pygame.freetype.get_error:返回最新的 FreeType 錯誤
pygame.freetype.get_version:返回 FreeType 版本
pygame.freetype.init:初始化底層 FreeType 庫。
pygame.freetype.quit:關閉底層 FreeType 庫。
pygame.freetype.get_init:如果 FreeType 模塊當前已初始化,則返回 True。
pygame.freetype.was_init:已棄用:使用 get_init() 代替。
pygame.freetype.get_cache_size:返回字形大小寫大小
pygame.freetype.get_default_resolution:返回默認像素大小(以每英寸點數為單位)
pygame.freetype.set_default_resolution:設置模塊的默認像素大小(以每英寸點數為單位)
pygame.freetype.SysFont:從系統字體創建一個 Font 對象
pygame.freetype.get_default_font:獲取默認字體的文件名
pygame.freetype.Font:從支持的字體文件創建新的 Font 實例。
?14)pygame.gfxdraw 抗鋸齒繪制函數
pygame.gfxdraw.pixel:繪制一個像素
pygame.gfxdraw.hline:畫一條水平線
pygame.gfxdraw.vline:畫一條垂直線
pygame.gfxdraw.line:畫一條線
pygame.gfxdraw.rectangle:畫一個矩形
pygame.gfxdraw.box:繪制一個填充的矩形
pygame.gfxdraw.circle:畫一個圓圈
pygame.gfxdraw.aacircle:繪制一個抗鋸齒圓
pygame.gfxdraw.filled_circle:畫一個實心圓
pygame.gfxdraw.ellipse:畫一個橢圓
pygame.gfxdraw.aaellipse:繪制一個抗鋸齒橢圓
pygame.gfxdraw.filled_ellipse:繪制一個實心橢圓
pygame.gfxdraw.arc:畫一個圓弧
pygame.gfxdraw.pie:畫一個餅
pygame.gfxdraw.trigon:畫一個三角形/三角形
pygame.gfxdraw.atrigon:繪制抗鋸齒三角形/三角形
pygame.gfxdraw.filled_trigon:繪制實心三角形/三角形
pygame.gfxdraw.polygon:畫一個多邊形
pygame.gfxdraw.aapolygon:繪制抗鋸齒多邊形
pygame.gfxdraw.filled_polygon:繪制一個填充多邊形
pygame.gfxdraw.textured_polygon:繪制一個有紋理的多邊形
pygame.gfxdraw.bezier:繪制貝塞爾曲線
?15)pygame.image 加載、保存和傳輸表面
pygame.image.load:從文件(或類似文件的對象)加載新圖像
pygame.image.save:將圖像保存到文件(或類似文件的對象)
pygame.image.get_sdl_image_version:獲取正在使用的 SDL_Image 庫的版本號
pygame.image.get_extended:測試是否可以加載擴展圖像格式
pygame.image.tostring:將圖像傳輸到字節緩沖區
pygame.image.tobytes:將圖像傳輸到字節緩沖區
pygame.image.fromstring:從字節緩沖區創建新的 Surface
pygame.image.frombytes:從字節緩沖區創建新的 Surface
pygame.image.frombuffer:創建一個新的 Surface,在字節緩沖區內共享數據
pygame.image.load_basic:從文件(或類似文件的對象)加載新的 BMP 圖像
pygame.image.load_extended:從文件(或類似文件的對象)加載圖像
pygame.image.save_extended:將 png/jpg 圖像保存到文件(或類似文件的對象)
?16)pygame.joystick 管理操縱桿設備
pygame.joystick.init:初始化操縱桿模塊。
pygame.joystick.quit:取消初始化操縱桿模塊。
pygame.joystick.get_init:如果操縱桿模塊已初始化,則返回 True。
pygame.joystick.get_count:返回操縱桿的數量。
pygame.joystick.Joystick:創建一個新的操縱桿對象。
?17)pygame.key 管理鍵盤設備
pygame.key.get_focused:如果顯示器正在接收來自系統的鍵盤輸入,則為 true
pygame.key.get_pressed:獲取所有鍵盤按鈕的狀態
pygame.key.get_mods:確定正在按住哪些修飾鍵
pygame.key.set_mods:臨時設置按下哪些修飾鍵
pygame.key.set_repeat:控制如何重復按住的按鍵
pygame.key.get_repeat:查看按住的按鍵如何重復
pygame.key.name:獲取密鑰標識符的名稱
pygame.key.key_code:從密鑰名稱獲取密鑰標識符
pygame.key.start_text_input:開始處理 Unicode 文本輸入事件
pygame.key.stop_text_input:停止處理 Unicode 文本輸入事件
pygame.key.set_text_input_rect:控制候選列表的位置
?18)pygame.locals Pygame 常量
該模塊包含 pygame 使用的各種常量。其內容自動放置在 pygame 模塊命名空間中。
19)pygame.mixer 加載并播放聲音
pygame.mixer.init:初始化混頻器模塊
pygame.mixer.pre_init:預設混音器初始化參數
pygame.mixer.quit:取消初始化混音器
pygame.mixer.get_init:測試混音器是否已初始化
pygame.mixer.stop:停止播放所有聲道
pygame.mixer.pause:暫時停止所有聲道的播放
pygame.mixer.unpause:恢復暫停的聲道播放
pygame.mixer.fadeout:停止前逐漸減弱所有聲音的音量
pygame.mixer.set_num_channels:設置播放通道總數
pygame.mixer.get_num_channels:獲取播放頻道總數
pygame.mixer.set_reserved:保留頻道不被自動使用
pygame.mixer.find_channel:找到一個未使用的頻道
pygame.mixer.get_busy:測試是否有聲音被混合
pygame.mixer.get_sdl_mixer_version:獲取混音器的 SDL 版本
pygame.mixer.Sound:從文件或緩沖區對象創建新的 Sound 對象
pygame.mixer.Channel:創建一個 Channel 對象來控制播放
20)pygame.mouse 管理鼠標設備和顯示
pygame.mouse.get_pressed:獲取鼠標按鈕的狀態
pygame.mouse.get_pos:獲取鼠標光標位置
pygame.mouse.get_rel:獲取鼠標移動量
pygame.mouse.set_pos:設置鼠標光標位置
pygame.mouse.set_visible:隱藏或顯示鼠標光標
pygame.mouse.get_visible:獲取鼠標光標當前的可見狀態
pygame.mouse.get_focused:檢查顯示器是否正在接收鼠標輸入
pygame.mouse.set_cursor:將鼠標光標設置為新光標
pygame.mouse.get_cursor:獲取當前鼠標光標
21)pygame.mixer.music 播放流媒體音樂曲目
pygame.mixer.music.load:加載音樂文件進行播放
pygame.mixer.music.unload:卸載當前加載的音樂以釋放資源
pygame.mixer.music.play:開始播放音樂流
pygame.mixer.music.rewind:重新開始音樂
pygame.mixer.music.stop:停止音樂播放
pygame.mixer.music.pause:暫時停止音樂播放
pygame.mixer.music.unpause:恢復暫停的音樂
pygame.mixer.music.fadeout:淡出后停止音樂播放
pygame.mixer.music.set_volume:設置音樂音量
pygame.mixer.music.get_volume:獲取音樂音量
pygame.mixer.music.get_busy:檢查音樂流是否正在播放
pygame.mixer.music.set_pos:設置播放位置
pygame.mixer.music.get_pos:獲取音樂播放時間
pygame.mixer.music.queue:將聲音文件排隊以跟隨當前的
pygame.mixer.music.set_endevent:讓音樂在播放停止時發送事件
pygame.mixer.music.get_endevent:獲取播放停止時通道發送的事件
22)pygame.PixelArray 操作圖像像素數據
pygame.PixelArray.surface:獲取 PixelArray 使用的 Surface。
pygame.PixelArray.itemsize:返回像素數組項的字節大小
pygame.PixelArray.my:返回維數。
pygame.PixelArray.shape:返回數組大小。
pygame.PixelArray.strides:返回每個數組維度的字節偏移量。
pygame.PixelArray.make_surface:從當前 PixelArray 創建一個新 Surface。
pygame.PixelArray.replace:將 PixelArray 中傳遞的顏色替換為另一種顏色。
pygame.PixelArray.extract:從 PixelArray 中提取傳遞的顏色。
pygame.PixelArray.compare:將 PixelArray 與另一個 PixelArray 進行比較。
pygame.PixelArray.transpose:交換 x 軸和 y 軸。
pygame.PixelArray.close:關閉 PixelArray,并釋放 Surface 鎖。
23)pygame.Rect 矩形的靈活容器
pygame.Rect.copy:復制矩形
pygame.Rect.move:移動矩形
pygame.Rect.move_ip:將矩形移動到位
pygame.Rect.inflate:增大或縮小矩形尺寸
pygame.Rect.inflate_ip:就地增大或縮小矩形尺寸
pygame.Rect.scale_by:按給定的乘數縮放矩形
pygame.Rect.scale_by_ip:就地增大或縮小矩形尺寸
pygame.Rect.update:設置矩形的位置和大小
pygame.Rect.clamp:將矩形移動到另一個矩形內
pygame.Rect.clamp_ip:將矩形移動到另一個矩形內
pygame.Rect.clip:在另一個矩形內裁剪一個矩形
pygame.Rect.clipline:在矩形內裁剪一條線
pygame.Rect.union:將兩個矩形合并為一個
pygame.Rect.union_ip:將兩個矩形就地連接成一個
pygame.Rect.unionall:許多矩形的并集
pygame.Rect.unionall_ip:許多矩形的并集
pygame.Rect.fit:按長寬比調整矩形大小并移動矩形
pygame.Rect.normalize:正確的負尺寸
pygame.Rect.contains:測試一個矩形是否在另一個矩形內部
pygame.Rect.collidepoint:測試一個點是否在矩形內
pygame.Rect.colliderect:測試兩個矩形是否重疊
pygame.Rect.collidelist:測試列表中的一個矩形是否相交
pygame.Rect.collidelistall:測試列表中的所有矩形是否相交
pygame.Rect.collideobjects:測試列表中的任何對象是否相交
pygame.Rect.collideobjectsall:測試列表中的所有對象是否相交
pygame.Rect.collidedict:測試字典中的一個矩形是否相交
pygame.Rect.collidedictall:測試字典中的所有矩形是否相交
24)pygame.scrap 本機剪貼板訪問
pygame.scrap.init:初始化廢料模塊。
pygame.scrap.get_init:如果 scrap 模塊當前已初始化,則返回 True。
pygame.scrap.get:從剪貼板獲取指定類型的數據。
pygame.scrap.get_types:獲取可用剪貼板類型的列表。
pygame.scrap.put:將數據放入剪貼板。
pygame.scrap.contains:檢查剪貼板中給定類型的數據是否可用。
pygame.scrap.lost:指示 pygame 應用程序是否已丟失剪貼板所有權。
pygame.scrap.set_mode:設置剪貼板訪問模式。
25)pygame.sndarray 操縱聲音樣本數據
pygame.sndarray.array:將聲音樣本復制到數組中
pygame.sndarray.samples:將聲音樣本引用到數組中
pygame.sndarray.make_sound:將數組轉換為 Sound 對象
pygame.sndarray.use_arraytype:設置用于聲音陣列的陣列系統
pygame.sndarray.get_arraytype:獲取當前活動的數組類型。
pygame.sndarray.get_arraytypes:獲取當前支持的陣列系統類型。
26)pygame.tests 測試pygame
pygame.tests.run:運行 pygame 單元測試套件
27)pygame.time 管理時間和幀率
pygame.time.get_ticks:獲取以毫秒為單位的時間
pygame.time.wait:暫停程序一段時間
pygame.time.delay:暫停程序一段時間
pygame.time.set_timer:在事件隊列中重復創建事件
pygame.time.Clock:創建一個對象來幫助跟蹤時間
28)pygame.transform 調整圖像大小并移動圖像
pygame.transform.flip:垂直和水平翻轉
pygame.transform.scale:調整大小到新分辨率
pygame.transform.scale_by:使用標量調整大小到新分辨率
pygame.transform.rotate:旋轉圖像
pygame.transform.rotozoom:過濾縮放和旋轉
pygame.transform.scale2x:專門的圖像倍增器
pygame.transform.smoothscale:平滑地將表面縮放到任意尺寸
pygame.transform.smoothscale_by:使用標量調整大小到新分辨率
pygame.transform.get_smoothscale_backend:返回正在使用的 smoothscale 濾波器版本:“GENERIC”、“MMX”或“SSE”
pygame.transform.set_smoothscale_backend:將 smoothscale 濾波器版本設置為以下之一:“GENERIC”、“MMX”或“SSE”
pygame.transform.chop:獲取已刪除內部區域的圖像的副本
pygame.transform.laplacian:查找曲面中的邊緣
pygame.transform.average_surfaces:從多個曲面中找出平均曲面。
pygame.transform.average_color:求表面的平均顏色
pygame.transform.grayscale:對表面進行灰度化
pygame.transform.threshold:查找表面中的哪些像素以及有多少像素在“search_color”或“search_surf”的閾值內。
二、Pygame的安裝和使用
1、安裝
pip install pygame
2、應用案例
1)按鍵(Alt + W/A/S/D)操作小球移動
# -*- coding:utf-8 -*-
import pygame# 初始化pygame
pygame.init()# 設置窗口標題
title = "Pygame應用案例-按鍵移動的小球"
pygame.display.set_caption(title)screen = pygame.display.set_mode((1280, 720))
clock = pygame.time.Clock()
running = True
dt = 0player_pos = pygame.Vector2(screen.get_width() / 2, screen.get_height() / 2)while running:# 事件輪詢 - pygame.QUIT 事件表示用戶單擊X關閉您的窗口for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 用一種顏色填充屏幕以擦除上一幀中的任何內容screen.fill("purple")pygame.draw.circle(screen, "red", player_pos, 40)keys = pygame.key.get_pressed()if keys[pygame.K_w]:player_pos.y -= 300 * dtif keys[pygame.K_s]:player_pos.y += 300 * dtif keys[pygame.K_a]:player_pos.x -= 300 * dtif keys[pygame.K_d]:player_pos.x += 300 * dt# 更新全部顯示 pygame.display.flip()# 將FPS限制為60# dt是自上一幀以來的增量時間(以秒為單位),用于幀速率dt = clock.tick(60) / 1000pygame.quit()
2)規則移動的小球
# -*- coding:utf-8 -*-
import sys
import pygame# 初始化pygame
pygame.init()# 設置窗口標題
title = "Pygame應用案例-規則移動的小球"
pygame.display.set_caption(title)# 顯示窗口
width = 800
height = 600
screen = pygame.display.set_mode((width, height)) ball = pygame.image.load("ball.png") # 加載圖片
ballrect = ball.get_rect() # 根據圖片大小獲取矩形區域speed = [5, 5] # 設置移動的X軸、Y軸距離
clock = pygame.time.Clock() # 創建時鐘對象
# 執行死循環,確保窗口一直顯示
while True:# 表示每秒鐘60次幀刷新clock.tick(60)# 檢查事件for event in pygame.event.get():if event.type == pygame.QUIT: # 如果點擊關閉窗口,則退出pygame.quit() # 退出pygamesys.exit()ballrect = ballrect.move(speed) # 通過再次賦值移動小球# 碰到左右邊緣if ballrect.left < 0 or ballrect.right > width:speed[0] = -speed[0] #如果碰到邊距則反方向移動# 碰到上下邊緣if ballrect.top < 0 or ballrect.bottom > height:speed[1] = -speed[1]# 填充顏色screen.fill("purple")# 此函數是將圖片推送到窗口上,第一個參數為圖片第二個參數為圖片位置screen.blit(ball, ballrect) # 更新全部顯示 pygame.display.flip() pygame.quit()
更多游戲案例可前往官網(https://www.pygame.org/tags/all)下載并查看?