久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Python游戏工具包---Pygame最常用的15个模块详解(附pdf版本)

發(fā)布時間:2023/12/3 综合教程 35 生活家
生活随笔 收集整理的這篇文章主要介紹了 Python游戏工具包---Pygame最常用的15个模块详解(附pdf版本) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

↑?點擊上方?“一行數(shù)據(jù)”?關(guān)注 + 星標(biāo)?~?

每周送書,絕不錯過

本文不查錯,三連送書

最近很多讀者想學(xué)習(xí)使用python來制作游戲,其中最經(jīng)典的工具包就是Pygame ,如果單純只看之前分享的是個游戲代碼案例,直接來制作一款游戲有些難度

python制作十款游戲案例

所以今天行哥對pygame工具包進(jìn)行了總結(jié),并分享了pygame工具包最常用15個模塊的詳細(xì)方法,如果想獲取pdf版本可見文末鏈接

pygame中文手冊pdf版本:https://yihang.cowtransfer.com/s/7b027011c9cd4a

1.Color類

class pygame.Color

Pygame 中用于描述顏色的對象。Color(name) -> Color Color(r, g, b, a) -> Color Color(rgbvalue) -> Color

方法 & 屬性

  • pygame.Color.r??—??獲取或設(shè)置 Color 對象的紅色值

  • pygame.Color.g??—??獲取或設(shè)置 Color 對象的綠色值

  • pygame.Color.b??—??獲取或設(shè)置 Color 對象的藍(lán)色值

  • pygame.Color.a??—??獲取或設(shè)置 Color 對象的 alpha 值

  • pygame.Color.cmy??—??獲取或設(shè)置 Color 對象表示的 CMY 值

  • pygame.Color.hsva??—??獲取或設(shè)置 Color 對象表示的 HSVA 值

  • pygame.Color.hsla??—??獲取或設(shè)置 Color 對象表示的 HSLA 值

  • pygame.Color.i1i2i3??—??獲取或設(shè)置 Color 對象表示的 I1I2I3 值

  • pygame.Color.normalize()??—??返回 Color 對象的標(biāo)準(zhǔn)化 RGBA 值

  • pygame.Color.correct_gamma()??—??應(yīng)用一定的伽馬值調(diào)整 Color 對象

  • pygame.Color.set_length()??—??設(shè)置 Color 對象的長度(成員數(shù)量)

Pygame 使用 Color 類表示 RGBA 顏色值,每個顏色值的取值范圍是 0 ~ 255。允許通過基本的算術(shù)運算創(chuàng)造新的顏色值,支持轉(zhuǎn)換為其他顏色空間,例如 HSV 或 HSL,并讓你調(diào)整單個顏色通道。當(dāng)沒有給出 alpha 的值默認(rèn)是 255(不透明)。

“RGB值”可以是一個顏色名,一個 HTML 顏色格式的字符串,一個 16 進(jìn)制數(shù)的字符串,或者一個整型像素值。HTML 格式是 "#rrggbbaa",其中 "rr","gg","bb","aa" 都是 2 位的 16 進(jìn)制數(shù)。代表 alpha 的 "aa" 是可選的。16 進(jìn)制數(shù)的字符串組成形式為 "0xrrggbbaa",當(dāng)然,其中的 "aa" 也是可選的。

2.display模塊

pygame.display

Pygame 中用于控制窗口和屏幕顯示的模塊。

注:為了適應(yīng)語境,display 在該文檔中有時翻譯為“顯示”,有時翻譯為“顯示界面”。

函數(shù)

  • pygame.display.init()??—??初始化 display 模塊

  • pygame.display.quit()??—??結(jié)束 display 模塊

  • pygame.display.get_init()??—??如果 display 模塊已經(jīng)初始化,返回 True

  • pygame.display.set_mode()??—??初始化一個準(zhǔn)備顯示的窗口或屏幕

  • pygame.display.get_surface()??—??獲取當(dāng)前顯示的 Surface 對象

  • pygame.display.flip()??—??更新整個待顯示的? Surface 對象到屏幕上

  • pygame.display.update()??—??更新部分軟件界面顯示

  • pygame.display.get_driver()??—??獲取 Pygame 顯示后端的名字

  • pygame.display.Info()??—??創(chuàng)建有關(guān)顯示界面的信息對象

  • pygame.display.get_wm_info()??—??獲取關(guān)于當(dāng)前窗口系統(tǒng)的信息

  • pygame.display.list_modes()??—??獲取全屏模式下可使用的分辨率

  • pygame.display.mode_ok()??—??為顯示模式選擇最合適的顏色深度

  • pygame.display.gl_get_attribute()??—??獲取當(dāng)前顯示界面 OpenGL 的屬性值

  • pygame.display.gl_set_attribute()??—??設(shè)置當(dāng)前顯示模式的 OpenGL 屬性值

  • pygame.display.get_active()??—??當(dāng)前顯示界面顯示在屏幕上時返回 True

  • pygame.display.iconify()??—??最小化顯示的? Surface 對象

  • pygame.display.toggle_fullscreen()??—??切換全屏模式和窗口模式

  • pygame.display.set_gamma()??—??修改硬件顯示的 gama 坡道

  • pygame.display.set_gamma_ramp()??—??自定義修改硬件顯示的 gama 坡道

  • pygame.display.set_icon()??—??修改顯示窗口的圖標(biāo)

  • pygame.display.set_caption()??—??Set the current window caption

  • pygame.display.get_caption()??—??Get the current window caption

  • pygame.display.set_palette()??—? Set the display color palette for indexed displays 這個模塊提供控制 Pygame 顯示界面(display)的各種函數(shù)。Pygame 的? Surface ?對象即可顯示為一個窗口,也可以全屏模式顯示。當(dāng)你創(chuàng)建并顯示一個常規(guī)的? Surface ?對象后,在該對象上的改變并不會立刻反映到可見屏幕上,你必須選擇一個翻轉(zhuǎn)函數(shù)來顯示改動后的畫面。

顯示的原點是 (x=0, y=0) 的位置,及屏幕的左上角,坐標(biāo)軸向右下角增長。

Pygame 的 display 事實上可以有幾種初始化的方式。默認(rèn)情況下,display 作為一個軟件驅(qū)動的幀緩沖區(qū)。除此之外,你可以使用硬件加速和 OpenGL 支持的特殊模塊。這些是通過給 pygame.display.set_mode() 傳入 flags 參數(shù)來控制的。

Pygame 在任何時間內(nèi)都只允許有一個顯示界面。使用 pygame.display.set_mode() 創(chuàng)建的新顯示界面會自動替換掉舊的。如果需要精確控制像素格式或顯示分辨率,使用 pygame.display.mode_ok(),pygame.display.list_modes(),和 pygame.display.Info() 來查詢顯示界面相關(guān)的信息。

一旦? Surface ?對象的顯示界面被創(chuàng)建出來,這個模塊的函數(shù)就只影響當(dāng)前的顯示界面。如果該模塊未初始化, Surface ?對象也會變?yōu)椤胺欠ā薄H绻碌娘@示模式被設(shè)置,當(dāng)前的? Surface ?對象將會自動切換到新的顯示界面。

當(dāng)一個新的顯示模式被設(shè)置,會在 Pygame 的事件隊列中放入幾個相關(guān)事件。當(dāng)用于希望關(guān)閉程序時,pygame.QUIT 事件會被發(fā)送;當(dāng)顯示界面獲得和失去焦點時,窗口會得到 pygame.ACTIVEEVENT 事件;如果顯示界面設(shè)置了 pygame.RESIZABLE 標(biāo)志,那么當(dāng)用戶調(diào)整窗口尺寸時,pygame.VIDEORESIZE 事件會被發(fā)送;硬件顯示指當(dāng)接收到 pygame.VIDEOEXPOSE 事件時,將部分需要被重繪的窗口直接繪制到屏幕上。

一些顯示環(huán)境擁有自動拉伸所有窗口的選項。當(dāng)該選項被啟動時,自動拉伸會扭曲 Pygame 窗口的外觀。在 Pygame 的例子目錄中,有一個演示代碼(prevent_display_stretching.py)展示如何在微軟系統(tǒng)(Vista 以上系統(tǒng))中關(guān)閉 Pygame 顯示的自動拉伸屬性。

函數(shù)詳解pygame.display.init()初始化 display 模塊。

init() -> None

初始化 Pygame 的 display 模塊。在初始化之前,display 模塊無法做任何事情。但當(dāng)你調(diào)用更高級別的 pygame.init(),變會自動調(diào)用 pygame.display.init() 進(jìn)行初始化。

初始化后,Pygame 將自動從幾個內(nèi)部的顯示后端中選擇一個。顯示模式由平臺和當(dāng)前用戶權(quán)限決定。在 display 模塊被初始化之前,可以通過環(huán)境變量 SDL_VIDEODRIVER 設(shè)置哪一個顯示后端將被使用。具有多種顯示后端的系統(tǒng)如下:

Windows?:?windib,?directx
Unix?:?x11,?dga,?fbcon,?directfb,?ggi,?vgl,?svgalib,?aalib

在一些平臺上,可以將 Pygame 的 display 嵌入到已經(jīng)存在的窗口中。如果這么做,環(huán)境變量 SDL_WINDOWID 必須被設(shè)置為一個包含窗口 ID 或句柄的字符串。當(dāng) Pygame 的 display 被初始化的時候,將檢測環(huán)境變量。注意,在一個運行的窗口嵌入 display 會產(chǎn)生許多奇怪的副作用。

多次調(diào)用該函數(shù)并沒有任何問題,但也不會有什么效果。

pygame.display.quit()

結(jié)束 display 模塊。

quit() -> None

這個函數(shù)會關(guān)閉整個 display 模塊。這將意味著任何一個活躍的顯示界面都將被關(guān)閉。當(dāng)主程序退出時,該函數(shù)也會被自動調(diào)用。

多次調(diào)用該函數(shù)并沒有任何問題,但也不會有什么效果。

pygame.display.get_init()

如果 display 模塊已經(jīng)初始化,返回 True。

get_init() -> bool

如果 display 模塊已經(jīng)初始化,返回 True。

pygame.display.set_mode()初始化一個準(zhǔn)備顯示的窗口或屏幕。

set_mode(resolution=(0,0), flags=0, depth=0) -> Surface

這個函數(shù)將創(chuàng)建一個 Surface ?對象的顯示界面。傳入的參數(shù)用于指定顯示類型。最終創(chuàng)建出來的顯示界面將是最大可能地匹配當(dāng)前操作系統(tǒng)。

resolution 參數(shù)是一個二元組,表示寬和高。flags 參數(shù)是附件選項的集合。depth 參數(shù)表示使用的顏色深度。

返回的 Surface ?對象可以像常規(guī)的 Surface ?對象那樣去繪制,但發(fā)生的改變最終會顯示到屏幕上。

如果沒有傳入 resolution 參數(shù),或者使用默認(rèn)設(shè)置 (0, 0),且 Pygame 使用 SDL1.2.10 以上版本,那么創(chuàng)建出來的 Surface 對象將與當(dāng)前屏幕用戶一樣的分辨率。如果只有寬或高其中一項被設(shè)置為 0,那么 Surface 對象將使用屏幕分辨率的寬或高代替它。如果 SDL 版本低于 1.2.10,那么將拋出異常。

通常來說,最好的做法是不要傳遞 depth 參數(shù)。因為默認(rèn) Pygame 會根據(jù)當(dāng)前操作系統(tǒng)選擇最好和最快的顏色深度。如果你的游戲確實需要一個特殊的顏色格式,那么你可以通過控制 depth 參數(shù)來實現(xiàn)。Pygame 將為模擬一個非現(xiàn)成的顏色深度而耗費更多的時間。

當(dāng)使用全屏顯示模式的時候,有時候無法完全匹配到需要的分辨率。在這種情況下,Pygame 將自動選擇最匹配的分辨率使用,而返回的 Surface ?對象將保持與需求的分辨率一致。

flags 參數(shù)指定你想要的顯示類型。提供幾個選擇給你,你可以通過位操作同時使用多個類型(管道操作符 "|")。如果你傳入 0 或沒有傳入 flags 參數(shù),默認(rèn)會使用軟件驅(qū)動窗口。這兒是 flags 參數(shù)提供的幾個可選項:

選項 含義
pygame.FULLSCREEN 創(chuàng)建一個全屏顯示
pygame.DOUBLEBUF 1. 雙緩沖模式?2. 推薦和 HWSURFACE 或 OPENGL 一起使用
pygame.HWSURFACE 硬件加速,只有在 FULLSCREEN 下可以使用
pygame.OPENGL 創(chuàng)建一個 OPENGL 渲染的顯示
pygame.RESIZABLE 創(chuàng)建一個可調(diào)整尺寸的窗口
pygame.NOFRAME 創(chuàng)建一個沒有邊框和控制按鈕的窗口

舉個例子:

#?在屏幕中創(chuàng)建一個?700?*?400?的窗口
screen_width=700
screen_height=400
screen=pygame.display.set_mode([screen_width,?screen_height])

pygame.display.get_surface()獲取當(dāng)前顯示的 Surface 對象。

get_surface() -> Surface

返回當(dāng)前顯示的 Surface ?對象。如果沒有設(shè)置任何顯示模式,那么返回 None。

pygame.display.flip()更新整個待顯示的 Surface 對象到屏幕上。

flip() -> None

這個函數(shù)將更新整個顯示界面的內(nèi)容。如果你的顯示模式使用了 pygame.HWSURFACE(硬件加速)和 pygame.DOUBLEBUF(雙緩沖)標(biāo)志,那么將等待垂直會掃并切換顯示界面。如果你使用不同類型的顯示模式,那么它將簡單的更新整個顯示界面的內(nèi)容。

當(dāng)使用 pygame.OPENGL(使用 OPENGL 渲染)顯示模式時,將創(chuàng)建一個 gl 緩沖切換區(qū)。

溫馨提示:垂直回掃是與視頻顯示相關(guān)的時間測量,它代表了一個幀的結(jié)束和下一幀的開始時間之間的時間間隔。

pygame.display.update()更新部分軟件界面顯示。

update(rectangle=None) -> None

update(rectangle_list) -> None

這個函數(shù)可以看作是 pygame.display.flip() 函數(shù)在軟件界面顯示的優(yōu)化版。它允許更新屏幕的部分內(nèi)容,而不必完全更新。如果沒有傳入任何參數(shù),那么該函數(shù)就像 pygame.display.flip() 那樣更新整個界面。

你可以傳遞一個或多個矩形區(qū)域給該函數(shù)。一次性傳遞多個矩形區(qū)域比多次傳遞更有效率。如果傳入的是一個空列表或者 None,那么將忽略參數(shù)。

該函數(shù)不能在 pygame.OPENGL 顯示模式下調(diào)用,否則會拋出異常。

pygame.display.get_driver()獲取 Pygame 顯示后端的名字。

get_driver() -> name

初始化的時候,Pygame 會從多個可用的顯示后端中選擇一個。這個函數(shù)返回顯示后端內(nèi)部使用的名字。可以用來提供有關(guān)顯示性能加速的一些信息。可以參考 pygame.display.set_mode() 的 SDL_VIDEODRIVER 環(huán)境變量。

pygame.display.Info()創(chuàng)建有關(guān)顯示界面的信息對象。

Info() -> VideoInfo

創(chuàng)建一個對象,包含對當(dāng)前圖形環(huán)境一些屬性的描述。在一些平臺上,如果這個函數(shù)在 pygame.display.set_mode() 前被調(diào)用,可以提供一些關(guān)于默認(rèn)顯示模式的信息。也可以在設(shè)置完顯示模式后調(diào)用該函數(shù),以確認(rèn)顯示選項是否如愿以償。

返回的 VideoInfo 對象包含以下這些屬性:

屬性 含義
hw 如果是 True,則表示啟用硬件加速
wm 如果是 True,則表示顯示窗口模式
video_mem 表示顯存是多少兆字節(jié)(mb),0 表示不清楚
bitsize 表示每個像素存放多少位
bytesize 表示每個像素存放多少字節(jié)
masks 4 個值用于打包像素的 RGBA 值
shifts 4 個值用于打包像素的 RGBA 值
losses 4 個值用于打包像素的 RGBA 值
blit_hw 如果是 True,則表示加速硬件驅(qū)動的?Surface??對象繪制
blit_hw_CC 如果是 True,則表示加速硬件驅(qū)動的?Surface?對象 colorkey 繪制
blit_hw_A 如果是 True,則表示加速硬件驅(qū)動的?Surface??對象 pixel alpha 繪制
blit_sw 如果是 True,則表示加速軟件驅(qū)動的?Surface?對象繪制
blit_sw_CC 如果是 True,則表示加速軟件驅(qū)動的?Surface?對象 colorkey 繪制
blit_sw_A 如果是 True,則表示加速軟件驅(qū)動的Surface?對象 pixel alpha 繪制
current_w, current_h 1. 表示當(dāng)前顯示模式的寬和高(如果在 display.set_mode() 前被調(diào)用,則表示當(dāng)前桌面的寬和高)2. current_w, current_h 在 Pygame 1.8.0 以后,SDL 1.2.10 以后才支持3. -1 表示錯誤,或者 SDL 版本太舊

pygame.display.get_wm_info()獲取關(guān)于當(dāng)前窗口系統(tǒng)的信息。

get_wm_info() -> dict

創(chuàng)建一個由操作系統(tǒng)填充數(shù)據(jù)的字典。一些操作系統(tǒng)可能不會往里邊填充信息,則返回一個空字典。大多數(shù)平臺將返回一個 "window" 鍵,對應(yīng)的值是當(dāng)前顯示界面的系統(tǒng) ID。

Pygame 1.7.1 新增加的。

pygame.display.list_modes() 獲取全屏模式下可使用的分辨率。

list_modes(depth=0, flags=pygame.FULLSCREEN) -> list

這個函數(shù)返回一個列表,包含指定顏色深度所支持的所有分辨率。如果顯示模式非全屏,則返回一個空列表。如果返回 -1 表示支持任何分辨率(類似于窗口模式)。返回的列表由大到小排列。

如果顏色深度是 0,SDL 將選擇當(dāng)前/最合適的顏色深度顯示。flags 參數(shù)默認(rèn)值是 pygame.FULLSCREEN,但你可能需要添加額外的全屏模式標(biāo)志。

pygame.display.mode_ok()為顯示模式選擇最合適的顏色深度。

mode_ok(size, flags=0, depth=0) -> depth

這個函數(shù)使用與 pygame.display.set_mode() 函數(shù)一樣的參數(shù)。一般用于判斷一個顯示模式是否可用。如果顯示模式無法設(shè)置,則返回 0。正常情況下將會返回顯示需求的像素深度。

通常不用理會 depth 參數(shù),除非一些支持多個顯示深度的平臺,它會提示哪個顏色深度是更合適的。

最有用的 flags 參數(shù)是 pygame.HWSURFACE,pygame.DOUBLEBUF 和 pygame.FULLSCREEN。如果這些標(biāo)志不支持,那么該函數(shù)會返回 0。

pygame.display.gl_get_attribute()獲取當(dāng)前顯示界面 OpenGL 的屬性值。

gl_get_attribute(flag) -> value

在調(diào)用設(shè)置了 pygame.OPENGL 標(biāo)志的 pygame.display.set_mode() 函數(shù)之后,檢查 OpenGL 的屬性值不失為一個好的習(xí)慣。參考 pygame.display.gl_set_attribute() 關(guān)于合法標(biāo)志的列表。

pygame.display.gl_set_attribute()設(shè)置當(dāng)前顯示模式的 OpenGL 屬性值。

gl_set_attribute(flag, value) -> None

當(dāng)調(diào)用設(shè)置了 pygame.OPENGL 標(biāo)志的 pygame.display.set_mode() 函數(shù)時,Pygame 會自動設(shè)置 OpenGL 的一些屬性值,例如顏色和雙緩沖區(qū)。OpenGL 其實還提供了其他一些屬性值供你控制。在 flag 參數(shù)中傳入屬性名,并將其值設(shè)置在 value 參數(shù)中。這個函數(shù)必須在 pygame.display.set_mode() 前設(shè)置。

這些 OPENGL 標(biāo)志是:

GL_ALPHA_SIZE, GL_DEPTH_SIZE, GL_STENCIL_SIZE, GL_ACCUM_RED_SIZE, GL_ACCUM_GREEN_SIZE,??GL_ACCUM_BLUE_SIZE, GL_ACCUM_ALPHA_SIZE, GL_MULTISAMPLEBUFFERS, GL_MULTISAMPLESAMPLES, GL_STEREO

pygame.display.get_active()當(dāng)前顯示界面顯示在屏幕上時返回 True。

get_active() -> bool

pygame.display.set_mode() 函數(shù)被調(diào)用之后,Surface 對象將被顯示在屏幕上。大多數(shù)窗口都支持隱藏,如果顯示的 Surface ?對象被隱藏和最小化,那么該函數(shù)將返回 False。

pygame.display.iconify()最小化顯示的 Surface ?對象。

iconify() -> bool

將顯示的Surface 對象最小化或隱藏。并不是所有的操作系統(tǒng)都支持最小化顯示界面。如果該函數(shù)調(diào)用成功,返回 True。

當(dāng)顯示界面最小化時,pygame.display.get_active() 返回 False。事件隊列將接收到 ACTIVEEVENT 事件。

pygame.display.toggle_fullscreen() 切換全屏模式和窗口模式。

toggle_fullscreen() -> bool

切換全屏模式和窗口模式。這個函數(shù)只在 unix x11 顯示驅(qū)動下工作。在大多數(shù)情況下,建議調(diào)用 pygame.display.set_mode() 創(chuàng)建一個新的顯示模式進(jìn)行切換。

pygame.display.set_gamma()修改硬件顯示的 gama 坡道。

set_gamma(red, green=None, blue=None) -> bool

設(shè)置硬件驅(qū)動顯示的紅色、綠色和藍(lán)色伽馬值。如果沒有傳遞 green 和 blue 參數(shù),它們將與 red 值相等。不是所有的操作系統(tǒng)和硬件都支持伽馬坡道。如果函數(shù)修改成功,則返回 True。

伽馬值為 1.0 創(chuàng)建一個線性顏色表,較低的值會使屏幕變暗,較高的值會使屏幕變量。

pygame.display.set_gamma_ramp()自定義修改硬件顯示的 gama 坡道

set_gamma_ramp(red, green, blue) -> bool

使用自定義表設(shè)置硬件驅(qū)動顯示的紅色、綠色和藍(lán)色伽馬坡道。每個參數(shù)必須是 256 位整數(shù)的列表。每位整數(shù)應(yīng)該在 0 和 0xffff 之間。不是所有的操作系統(tǒng)和硬件都支持伽馬坡道。如果函數(shù)修改成功,則返回 True。

pygame.display.set_icon()修改顯示窗口的圖標(biāo)。

set_icon(Surface) -> None

設(shè)置顯示窗口執(zhí)行時的圖標(biāo)。所有的操作系統(tǒng)默認(rèn)都是以簡單的 Pygame LOGO 作為圖標(biāo)。

你可以傳入任何 Surface ?對象作為圖標(biāo),但大多數(shù)操作系統(tǒng)要求圖標(biāo)的大小是 32 * 32。圖標(biāo)可以設(shè)置 colorkey 透明度。

一些操作系統(tǒng)不允許修改顯示中的窗口圖標(biāo)。對于這類操作系統(tǒng),該函數(shù)需要再調(diào)用 pygame.display.set_mode() 前先創(chuàng)建并設(shè)置圖標(biāo)。

pygame.display.set_caption()設(shè)置當(dāng)前窗口的標(biāo)題欄。

set_caption(title, icontitle=None) -> None

如果顯示窗口擁有一個標(biāo)題欄,這個函數(shù)將修改窗口標(biāo)題欄的文本。一些操作系統(tǒng)支持最小化窗口時切換標(biāo)題欄,通過設(shè)置 icontitle 參數(shù)實現(xiàn)。

pygame.display.get_caption()獲取當(dāng)前窗口的標(biāo)題欄。

get_caption() -> (title, icontitle)

返回當(dāng)前窗口的標(biāo)題欄和最小化標(biāo)題欄,通常這兩個值是一樣的。

pygame.display.set_palette()設(shè)置顯示界面的調(diào)色板。

set_palette(palette=None) -> None

這個函數(shù)將修改顯示界面的 8 位調(diào)色板。這不會改變Surface 對象實際的調(diào)色板,僅用于 Surface 對象的顯示。如果沒有傳入?yún)?shù),將恢復(fù)系統(tǒng)默認(rèn)調(diào)色板。調(diào)色板是一組 RGB 三元組序列。

3.draw 模塊

pygame.draw Pygame 中繪制圖形的模塊。

函數(shù)

  • pygame.draw.rect()??—??繪制矩形

  • pygame.draw.polygon()??—??繪制多邊形

  • pygame.draw.circle()??—??根據(jù)圓心和半徑繪制圓形

  • pygame.draw.ellipse()??—??根據(jù)限定矩形繪制一個橢圓形

  • pygame.draw.arc()??—??繪制弧線

  • pygame.draw.line()??—??繪制線段

  • pygame.draw.lines()??—??繪制多條連續(xù)的線段

  • pygame.draw.aaline()??—??繪制抗鋸齒的線段

  • pygame.draw.aalines()??—??繪制多條連續(xù)的線段(抗鋸齒)

該模塊用于在 Surface 對象上繪制一些簡單的形狀。這些函數(shù)將渲染到任何格式的 Surface 對象上。硬件渲染會比普通的軟件渲染更耗時。

大部分函數(shù)用 width 參數(shù)指定圖形邊框的大小,如果 width = 0 則表示填充整個圖形。

所有的繪圖函數(shù)僅能在 Surface 對象的剪切區(qū)域生效。這些函數(shù)返回一個 Rect,表示包含實際繪制圖形的矩形區(qū)域。

大部分函數(shù)都有一個 color 參數(shù),傳入一個表示 RGB 顏色值的三元組,當(dāng)然也支持 RGBA 四元組。其中的 A 是 Alpha 的意思,用于控制透明度。不過該模塊的函數(shù)并不會繪制透明度,而是直接傳入到對應(yīng) Surface ?對象的 pixel alphas 中。color 參數(shù)也可以是已經(jīng)映射到 Surface ?對象的像素格式中的整型像素值。

當(dāng)這些函數(shù)在繪制時,必須暫時鎖定 Surface ?對象。許多連續(xù)繪制的函數(shù)可以通過一次性鎖定直到畫完再解鎖來提高效率。

函數(shù)詳解pygame.draw.rect()繪制矩形。

rect(Surface, color, Rect, width=0) -> Rect

在 Surface ?對象上繪制一個矩形。Rect 參數(shù)指定矩形的位置和尺寸。width 參數(shù)指定邊框的寬度,如果設(shè)置為 0 則表示填充該矩形。

pygame.draw.polygon()繪制多邊形。

polygon(Surface, color, pointlist, width=0) -> Rect 在 Surface ?對象上繪制一個多邊形。pointlist 參數(shù)指定多邊形的各個頂點。width 參數(shù)指定邊框的寬度,如果設(shè)置為 0 則表示填充該矩形。

繪制一個抗鋸齒的多邊形,只需要將 aalines() 的 closed 參數(shù)設(shè)置為 True 即可。

pygame.draw.circle()根據(jù)圓心和半徑繪制圓形。

circle(Surface, color, pos, radius, width=0) -> Rect

在 Surface ?對象上繪制一個圓形。pos 參數(shù)指定圓心的位置,radius 參數(shù)指定圓的半徑。width 參數(shù)指定邊框的寬度,如果設(shè)置為 0 則表示填充該矩形。

pygame.draw.ellipse()根據(jù)限定矩形繪制一個橢圓形。

ellipse(Surface, color, Rect, width=0) -> Rect

在 Surface ?對象上繪制一個橢圓形。Rect 參數(shù)指定橢圓外圍的限定矩形。width 參數(shù)指定邊框的寬度,如果設(shè)置為 0 則表示填充該矩形。

pygame.draw.arc()繪制弧線。

arc(Surface, color, Rect, start_angle, stop_angle, width=1) -> Rect

在 Surface ?對象上繪制一條弧線。Rect 參數(shù)指定弧線所在的橢圓外圍的限定矩形。兩個 angle 參數(shù)指定弧線的開始和結(jié)束位置。width 參數(shù)指定邊框的寬度。

pygame.draw.line()繪制線段。

line(Surface, color, start_pos, end_pos, width=1) -> Rect

在 Surface ?對象上繪制一條線段。兩端以方形結(jié)束。

pygame.draw.lines()繪制多條連續(xù)的線段。

lines(Surface, color, closed, pointlist, width=1) -> Rect

在 Surface ?對象上繪制一系列連續(xù)的線段。pointlist 參數(shù)是一系列短點。如果 closed 參數(shù)設(shè)置為 True,則繪制首尾相連。

pygame.draw.aaline()繪制抗鋸齒的線段。

aaline(Surface, color, startpos, endpos, blend=1) -> Rect

在 Surface ?對象上繪制一條抗鋸齒的線段。blend 參數(shù)指定是否通過繪制混合背景的陰影來實現(xiàn)抗鋸齒功能。該函數(shù)的結(jié)束位置允許使用浮點數(shù)。

pygame.draw.aalines()繪制多條連續(xù)的線段(抗鋸齒)。

aalines(Surface, color, closed, pointlist, blend=1) -> Rect

在 Surface ?對象上繪制一系列連續(xù)的線段(抗鋸齒)。如果 closed 參數(shù)為 True,則首尾相連。blend 參數(shù)指定是否通過繪制混合背景的陰影來實現(xiàn)抗鋸齒功能。該函數(shù)的結(jié)束位置允許使用浮點數(shù)。

image
#?公眾號:一行數(shù)據(jù)
import?pygame
import?sys
import?math
from?pygame.locals?import?*pygame.init()WHITE?=?(255,?255,?255)
BLACK?=?(0,?0,?0)
GREEN?=?(0,?255,?0)
RED?=?(255,?0,?0)
BLUE?=?(0,?0,?255)points?=?[(200,?175),?(300,?125),?(400,?175),?(450,?125),?(450,?225),?(400,?175),?(300,?225)]size?=?width,?height?=?640,?1000
screen?=?pygame.display.set_mode(size)
pygame.display.set_caption("Python?Demo")clock?=?pygame.time.Clock()while?True:for?event?in?pygame.event.get():if?event.type?==?QUIT:sys.exit()screen.fill(WHITE)pygame.draw.rect(screen,?BLACK,?(50,?30,?150,?50),?0)pygame.draw.rect(screen,?BLACK,?(250,?30,?150,?50),?1)pygame.draw.rect(screen,?BLACK,?(450,?30,?150,?50),?10)pygame.draw.polygon(screen,?GREEN,?points,?0)pygame.draw.circle(screen,?RED,?(320,?400),?25,?1)pygame.draw.circle(screen,?GREEN,?(320,?400),?75,?1)pygame.draw.circle(screen,?BLUE,?(320,?400),?125,?1)pygame.draw.ellipse(screen,?BLACK,?(100,?600,?440,?100),?1)pygame.draw.ellipse(screen,?BLACK,?(220,?550,?200,?200),?1)pygame.draw.arc(screen,?BLACK,?(100,?800,?440,?100),?0,?math.pi,?1)pygame.draw.arc(screen,?BLACK,?(220,?750,?200,?200),?math.pi,?math.pi?*?2,?1)pygame.display.flip()clock.tick(10)

4.event模塊

pygame.event用于處理事件與事件隊列的 Pygame 模塊。

函數(shù)

  • pygame.event.pump()??—??讓 Pygame 內(nèi)部自動處理事件

  • pygame.event.get()??—??從隊列中獲取事件

  • pygame.event.poll()??—??從隊列中獲取一個事件

  • pygame.event.wait()??—??等待并從隊列中獲取一個事件

  • pygame.event.peek()??—??檢測某類型事件是否在隊列中

  • pygame.event.clear()??—??從隊列中刪除所有的事件

  • pygame.event.event_name()??—??通過 id 獲得該事件的字符串名字

  • pygame.event.set_blocked()??—??控制哪些事件禁止進(jìn)入隊列

  • pygame.event.set_allowed()??—??控制哪些事件允許進(jìn)入隊列

  • pygame.event.get_blocked()??—??檢測某一類型的事件是否被禁止進(jìn)入隊列

  • pygame.event.set_grab()??—??控制輸入設(shè)備與其他應(yīng)用程序的共享

  • pygame.event.get_grab()??—??檢測程序是否共享輸入設(shè)備

  • pygame.event.post()??—??放置一個新的事件到隊列中

  • pygame.event.Event()??—??創(chuàng)建一個新的事件對象

  • pygame.event.EventType ?—??代表 SDL 事件的 Pygame 對象 Pygame 通過事件隊列控制所有的時間消息。該模塊中的程序?qū)湍愎芾硎录犃小]斎腙犃泻艽蟪潭纫蕾囉?pygame 的 display 模塊。如果 display 沒有被初始化,顯示模式?jīng)]有被設(shè)置,那么事件隊列就還沒有開始真正工作。

常規(guī)的隊列是由 pygame.event.EventType 定義的事件對象的組成,有多種方法來訪問里邊的事件對象:從簡單的檢測事件是否存在,到直接從棧中獲取它們。

所有事件都有一個類型標(biāo)識符,這個標(biāo)識符對應(yīng)的值定義在 NOEVENT 到 NUMEVENTS 之間(溫馨提示:類似于 C 語言的宏定義,明白?)。用戶可以自行定義事件,但類型標(biāo)識符的值應(yīng)該高于或等于 USEREVENT。

獲取各種輸入設(shè)備的狀態(tài),推薦你直接通過它們相應(yīng)的模塊(mouse,key 和 joystick)提供的函數(shù)訪問,而不是通過事件隊列;如果你使用此函數(shù),請記住,Pygame 需要通過一些方式與系統(tǒng)的窗口管理器和平臺的其他部分進(jìn)行通信。為了保持 Pygame 和系統(tǒng)同步,你需要調(diào)用 pygame.event.pump() 確保實時更新,你將在游戲的每次循環(huán)中調(diào)用這個函數(shù)。

事件隊列提供了一些簡單的過濾。通過阻止某些事件進(jìn)入事件隊列,可以略微提高游戲的性能(溫馨提示:因為這樣事件隊列的尺寸就會小一些,所以說可以略微提升性能)。使用 pygame.event.set_allowed() 和 pygame.event.set_blocked() 來控制某些事件是否允許進(jìn)入事件隊列。默認(rèn)所有事件都會進(jìn)入事件隊列。

事件子系統(tǒng)應(yīng)該在主線程被調(diào)用。如果你希望從其他線程中投遞事件消息進(jìn)入事件隊列,請使用 fastevent 包。

Joysticks(游戲手柄)只有在設(shè)備初始化后才會發(fā)送事件。

一個 EventType 事件對象包含一個事件類型標(biāo)識符和一組成員數(shù)據(jù)(事件對象不包含方法,只有數(shù)據(jù))。EventType 對象從 Python 的事件隊列中獲得,你也可以使用 pygame.event.Event() 函數(shù)創(chuàng)建自定義的新事件。

由于 SDL 的事件隊列限制了事件數(shù)量的上限(標(biāo)準(zhǔn)的 SDL 1.2 限制為 128),所以當(dāng)隊列已滿時,新的事件將會被扔掉。為了防止丟失事件消息,尤其是代表退出的輸入事件(因為當(dāng)用戶點擊退出按鈕沒有反應(yīng),往往會被認(rèn)為“死機”了),你的程序必須定期檢測事件,并對其進(jìn)行處理。

為了加快事件隊列的處理速度,可以使用 pygame.event.set_blocked() 函數(shù)阻止一些我們不關(guān)注的事件進(jìn)入隊列中。

所有的 EventType 實例對象都擁有一個事件類型標(biāo)識符,屬性名是 type。你也可以通過事件對象的 dict 屬性來完全訪問其他屬性。所有其他成員屬性的值都是通過事件對象的字典來傳遞。

5.font模塊

pygame.fontPygame 中加載和表示字體的模塊。

函數(shù)

  • pygame.font.init()??——??初始化字體模塊

  • pygame.font.quit()??——??還原字體模塊

  • pygame.font.get_init()??——??檢查字體模塊是否被初始化

  • pygame.font.get_default_font()??——??獲得默認(rèn)字體的文件名

  • pygame.font.get_fonts()??——??獲取所有可使用的字體

  • pygame.font.match_font()??——??在系統(tǒng)中搜索一種特殊的字體

  • pygame.font.SysFont()??——??從系統(tǒng)字體庫創(chuàng)建一個 Font 對象 類

  • pygame.font.Font ??——? 從一個字體文件創(chuàng)建一個 Font 對象 字體模塊可以在一個新的 Surface 對象上表示 TrueType 字體。它接受所有 UCS-2 字符('u0001' 到 'uFFFF')。此模塊為可選擇模塊,并且依賴于 SDL_ttf。在使用之前,你需要先測試該模塊是否可用,而且對其進(jìn)行初始化。

通過使用現(xiàn)有的 Font 對象,可以完成大多數(shù)與字體有關(guān)的工作。Pygame.font 模塊自身僅可以完成常規(guī)的初始化以及通過 pygame.font.Font() 創(chuàng)建 Font 對象。

你可以通過使用 pygame.font.SysFont() 函數(shù)從系統(tǒng)內(nèi)加載字體。另外還有其他幾個函數(shù)可以幫助你搜索系統(tǒng)的字體。

Pygame 配備了內(nèi)建的默認(rèn)字體。通過傳遞 "None" 為文件名訪問此字體。

在 pygame 第一次導(dǎo)入之前,當(dāng)pygame.font 模塊確定環(huán)境變量 PYGAME_FREETYPE 時使用基于 pygame.ftfont 的 pygame.freetype 模塊。Pygame.ftfont 是一個pygame.font 可兼容模塊,兼容絕大部分,除開其中某個字體模塊單元測試:Pygame.ftfont 并沒有基于字體模塊的 SDL_ttf 的 UCS-2 字符限制,所以對于大于 'uFFFF' 的碼點會產(chǎn)生異常。如果 pygame.freetype 是不可使用的,那么 SDL_ttf 字體模塊將會被加載用于替代。

常用函數(shù)詳解類 class pygame.font.Font 從一個字體文件創(chuàng)建一個 Font 對象。

Font(filename, size) -> Font

Font(object, size) -> Font

方法

  • pygame.font.Font.render()??——??在一個新 Surface 對象上繪制文本

  • pygame.font.Font.size()??——??確定多大的空間用于表示文本

  • pygame.font.Font.set_underline()??——??控制文本是否用下劃線渲染

  • pygame.font.Font.get_underline()??——??檢查文本是否繪制下劃線

  • pygame.font.Font.set_bold()??——??啟動粗體字渲染

  • pygame.font.Font.get_bold()??——??檢查文本是否使用粗體渲染

  • pygame.font.Font.set_italic()??——??啟動斜體字渲染

  • pygame.font.Font.metrics()??——??獲取字符串參數(shù)每個字符的參數(shù)

  • pygame.font.Font.get_italic()??——??檢查文本是否使用斜體渲染

  • pygame.font.Font.get_linesize()??——??獲取字體文本的行高

  • pygame.font.Font.get_height()??——??獲取字體的高度

  • pygame.font.Font.get_ascent()??——??獲取字體頂端到基準(zhǔn)線的距離

  • pygame.font.Font.get_descent()??——??獲取字體底端到基準(zhǔn)線的距離

  • 根據(jù)提供的文件名或者 python 文件對象加載一個新的字體。字體的高度是以像素為單位。如果文件名是 "None",則加載 Pygame 的默認(rèn)字體。如果一個字體無法由給定的參數(shù)加載,將會產(chǎn)生一個異常。一旦字體已經(jīng)創(chuàng)建完畢,那么字體的尺寸將不能修改。

字體對象主要被用于在新 Surface 對象中渲染文本。文本可以渲染為仿真的粗體或者斜體特征,但最好是加載的字體本身就帶有粗體或者斜體字形。可以用普通字符串或者 Unicode 編碼字符來渲染文本。

方法詳解

pygame.font.Font.render() 在一個新 Surface 對象上繪制文本。

render(text, antialias, color, background=None) -> Surface

該函數(shù)創(chuàng)建一個新的 Surface 對象,并在上邊渲染指定的文本。Pygame 沒有提供直接的方式在一個現(xiàn)有的 Surface 對象上繪制文本,取而代之的方法是:使用 Font.render() 函數(shù)創(chuàng)建一個渲染了文本的圖像(Surface 對象),然后將這個圖像繪制到目標(biāo) Surface 對象上。

僅支持渲染一行文本:“換行”字符不會被渲染。空字符('x00')被渲染將產(chǎn)生一個 TypeError 錯誤。Unicode 和 char(字節(jié))字符串都可以被接受。對于 Unicode 字符串,僅 UCS-2 字符范圍('u0001' 到 'uFFFF')被認(rèn)為是有效的。任何編碼值更大字符的字符會產(chǎn)生一個 UnicodeError 的錯誤;對于 char 字符串,默認(rèn)的是使用 LATIN1 編碼。color 參數(shù)決定的是文本的顏色(例如:(0, 0, 255) 表示藍(lán)色)。可選參數(shù) background 決定了文本的背景顏色。如果沒有傳遞 background 參數(shù),則對應(yīng)區(qū)域內(nèi)表示的文本背景將會被設(shè)置為透明。

返回的 Surface 對象將保持表示文本所需要的尺寸(與 Font.size() 所返回的尺寸相同)。如果將一個空字符串渲染為文本,將會返回一個空白 Surface 對象,它僅有一個像素點的寬度,但高度與字體高度一樣。

由于取決于文本背景的類型和抗鋸齒功能的使用,該函數(shù)將會返回不同類型的 Surface 對象。出于性能上的考慮,了解何種類型的圖像會被使用是很有幫助的:如果抗鋸齒功能沒有被使用,返回的圖像將采用二元調(diào)色的 8 位圖像。此時如果背景是透明的,只設(shè)置一個 colorkey 來實現(xiàn);抗鋸齒圖像會被渲染為 24 位 RGB 圖像。此時如果背景是透明的,每個像素都將包含一個 alpha 通道。

優(yōu)化:如果你已知文本最終將繪制在一個純色的背景上,那么文本是抗鋸齒的,你可以通過指定文本的背景色來提高性能(將文本背景色設(shè)置目標(biāo) Surface 對象的顏色)。使用這個技巧,你只需用一個 colorkey 即可保持透明信息,而不需要設(shè)置每個像素的 alpha 通道值(這樣效率會低很多)。

如果你嘗試渲染 '\n',通常是顯示為一個矩形(未知字符)。因此,你需要自己想辦法處理換行。

字體渲染并不是線程安全的行為:在任何時候僅有一個線程可以渲染文本。

6.image模塊

pygame.image用于圖像傳輸?shù)?Pygame 模塊。

函數(shù)

  • pygame.image.load()??—??從文件加載新圖片

  • pygame.image.save()??—??將圖像保存到磁盤上

  • pygame.image.get_extended()??—??檢測是否支持載入擴展的圖像格式

  • pygame.image.tostring()??—??將圖像轉(zhuǎn)換為字符串描述

  • pygame.image.fromstring()??—??將字符串描述轉(zhuǎn)換為圖像

  • pygame.image.frombuffer()??—??創(chuàng)建一個與字符串描述共享數(shù)據(jù)的 Surface 對象 image 模塊包含了加載和保存圖像的函數(shù),同時轉(zhuǎn)換為 Surface 對象支持的格式。

注意:沒有 Image 類;當(dāng)一個圖像被成功載入后,將轉(zhuǎn)換為 Surface ?對象。Surface ?對象允許你在上邊畫線、設(shè)置像素、捕獲區(qū)域等。

Image 是 Pygame 相當(dāng)依賴的一個模塊,支持載入的圖像格式如下:

  • JPG

  • PNG

  • GIF(無動畫)

  • BMP

  • PCX

  • TGA(無壓縮)

  • TIF

  • LBM(和 PBM)

  • PBM(和 PGM,PPM)

  • XPM 支持保存為以下格式:

  • BMP

  • TGA

  • PNG

  • JPEG 其中,保存為 PNG 和 JPEG 格式是 Pygame 1.8 新增加的。

函數(shù)詳解pygame.image.load()從文件加載新圖片。

load(filename) -> Surface

load(fileobj, namehint=””) -> Surface

從文件加載一張圖片,你可以傳遞一個文件路徑或一個 Python 的文件對象。

Pygame 將自動判斷圖像的格式(比如 GIF 或位圖)并創(chuàng)建一個新的 Surface ?對象。有時它可能需要知道文件的后綴名(比如 GIF 圖像應(yīng)該以 ".gif" 為后綴)。如果你傳入原始文件對象,你需要傳入它對應(yīng)的文件名到 namehint 參數(shù)中。

返回的 Surface ?對象將包含與源文件相同的顏色格式,colorkey 和 alpha 透明度通道。你通常需要調(diào)用 Surface.convert()?函數(shù)進(jìn)行轉(zhuǎn)換,這樣可以使得在屏幕上繪制的速度更快。

對于含有 alpha 通道的圖片(支持部分位置透明,像 PNG 圖像),需要使用 Surface.convert_alpha()?函數(shù)進(jìn)行轉(zhuǎn)換。

在某些環(huán)境下,Pygame 可能無法支持上述所有的圖像格式,但至少無壓縮的 BMP 格式是支持的。你可以調(diào)用 pygame.image.get_extended() 函數(shù),如果返回 True,說明可以加載上述的格式(包含 PNG,JPG 和 GIF)。

你應(yīng)該使用 os.path.join() 提高代碼的兼容性:

asurf = pygame.image.load(os.path.join('data', 'Python.png'))

pygame.image.save()將圖像保存到磁盤上。

save(Surface, filename) -> None

該函數(shù)將保存 Surface ?對象到磁盤上,支持存儲為 BMP,TGA,PNG 或 JPEG 格式的圖像。如果 filename 沒有指定后綴名,那么默認(rèn)是保存為 TGA 格式。TGA 和 BMP 格式是無壓縮的文件。

保存為 PNG 和 JPEG 格式是 Pygame 1.8 新增的。

pygame.image.get_extended()檢測是否支持載入擴展的圖像格式。

get_extended() -> bool

如果 Pygame 支持上述所有的擴展圖像格式,則返回 True。

pygame.image.tostring()將圖像轉(zhuǎn)換為字符串描述。

tostring(Surface, format, flipped=False) -> string

將圖像轉(zhuǎn)換為一個字符串描述,可以被 Python 的其他圖像模塊通過 "fromstring" 轉(zhuǎn)換回圖像。一些 Python 圖像模塊喜歡“自下而上”的存儲格式(例如 PyOpenGL)。如果 flipped 參數(shù)為 True,那么字符串將會垂直翻轉(zhuǎn)以適用這類圖像模塊。

format 參數(shù)可以是下表中任何一個字符串。注意:只有 8 位的 Surface ?對象可以使用 "P" 格式。其他格式可以用于任何 Surface ?對象上。

pygame.image.fromstring()將字符串描述轉(zhuǎn)換為圖像。

fromstring(string, size, format, flipped=False) -> Surface

該函數(shù)的使用跟 pygame.image.tostring() 相似。size 參數(shù)是一對表示寬度和高度的數(shù)字。一旦新的 Surface 對象創(chuàng)建成功,你就可以刪除字符串描述。

size 和 format 參數(shù)指定的數(shù)據(jù)需要跟字符串描述相符,否則將拋出異常。

更快地將圖片轉(zhuǎn)換到 Pygame,請參考 pygame.image.frombuffer() 函數(shù)。

pygame.image.frombuffer()創(chuàng)建一個與字符串描述共享數(shù)據(jù)的 Surface 對象。

frombuffer(string, size, format) -> Surface

創(chuàng)建一個新的 Surface 對象,與字符串描述直接共享像素數(shù)據(jù)。該函數(shù)的使用跟 pygame.image.fromstring() 類似,但沒法垂直翻轉(zhuǎn)原始數(shù)據(jù)。

該函數(shù)的速度會比 pygame.image.fromstring() 快很多,因為該函數(shù)不需要申請和拷貝任何像素數(shù)據(jù)。

7.key模塊

pygame.key與鍵盤相關(guān)的 Pygame 模塊。

函數(shù)

  • pygame.key.get_focused()??—??當(dāng)窗口獲得鍵盤的輸入焦點時返回 True

  • pygame.key.get_pressed()??—??獲取鍵盤上所有按鍵的狀態(tài)

  • pygame.key.get_mods()??—??檢測是否有組合鍵被按下

  • pygame.key.set_mods()??—??臨時設(shè)置某些組合鍵為被按下狀態(tài)

  • pygame.key.set_repeat()??—??控制重復(fù)響應(yīng)持續(xù)按下按鍵的時間

  • pygame.key.get_repeat()??—??獲取重復(fù)響應(yīng)按鍵的參數(shù)

  • pygame.key.name()??—??獲取按鍵標(biāo)識符對應(yīng)的名字 該模塊包含處理與鍵盤操作相關(guān)的函數(shù)。當(dāng)鍵盤按鍵被按下和釋放時,事件隊列將獲得 pygame.KEYDOWN 和 pygame.KEYUP 事件消息。這兩個消息均包含 key 屬性,是一個整數(shù)的 id,代表鍵盤上具體的某個按鍵。

pygame.KYEDOWN 事件還有個額外的屬性 unicode 和 scancode。unicode 代表一個按鍵翻譯后的 Unicode 編碼,這包含 shift 按鍵和組合鍵。scancode 是掃描碼,不同鍵盤間該值可能不同。不過這對于特殊按鍵像多媒體鍵的選擇是有用的。

溫馨提示:當(dāng)鍵盤按下的時候,鍵盤會發(fā)送一個掃描碼給系統(tǒng)。掃描碼是鍵盤反饋哪一個按鍵被按下的方式,不同類型的鍵盤掃描碼不同。再由系統(tǒng)調(diào)用相應(yīng)的函數(shù)將其轉(zhuǎn)換為統(tǒng)一的 Unicode 編碼。

key 屬性的值是一個數(shù)字,為了方便使用,Pygame 將這些數(shù)字定義為以下這些常量:

KeyASCII ASCII 描述
K_BACKSPACE \b 退格鍵(Backspace)
K_TAB \t 制表鍵(Tab)
K_CLEAR 清楚鍵(Clear)
K_RETURN \r 回車鍵(Enter)
K_PAUSE 暫停鍵(Pause)
K_ESCAPE ^[ 退出鍵(Escape)
K_SPACE 空格鍵(Space)
K_EXCLAIM ! 感嘆號(exclaim)
K_QUOTEDBL " 雙引號(quotedbl)
K_HASH # 井號(hash)
K_DOLLAR $ 美元符號(dollar)
K_AMPERSAND & and 符號(ampersand)
K_QUOTE ' 單引號(quote)
K_LEFTPAREN ( 左小括號(left parenthesis)
K_RIGHTPAREN ) 右小括號(right parenthesis)
K_ASTERISK * 星號(asterisk)
K_PLUS + 加號(plus sign)
K_COMMA , 逗號(comma)
K_MINUS - 減號(minus sign)
K_PERIOD . 句號(period)
K_SLASH / 正斜杠(forward slash)
K_0 0 0
K_1 1 1
K_2 2 2
K_3 3 3
K_4 4 4
K_5 5 5
K_6 6 6
K_7 7 7
K_8 8 8
K_9 9 9
K_COLON : 冒號(colon)
K_SEMICOLON ; 分號(semicolon)
K_LESS < 小于號(less-than sign)
K_EQUALS = 等于號(equals sign)
K_GREATER > 大于號(greater-than sign)
K_QUESTION ? 問號(question mark)
K_AT @ at 符號(at)
K_LEFTBRACKET [ 左中括號(left bracket)
K_BACKSLASH |反斜杠(backslash)
K_RIGHTBRACKET ] 右中括號(right bracket)
K_CARET ^ 脫字符(caret)
K_UNDERSCORE _ 下劃線(underscore)
K_BACKQUOTE ` 重音符(grave)
K_a a a
K_b b b
K_c c c
K_d d d
K_e e e
K_f f f
K_g g g
K_h h h
K_i i i
K_j j j
K_k k k
K_l l l
K_m m m
K_n n n
K_o o o
K_p p p
K_q q q
K_r r r
K_s s s
K_t t t
K_u u u
K_v v v
K_w w w
K_x x x
K_y y y
K_z z z
K_DELETE 刪除鍵(delete)
K_KP0 0(小鍵盤)
K_KP1 1(小鍵盤)
K_KP2 2(小鍵盤)
K_KP3 3(小鍵盤)
K_KP4 4(小鍵盤)
K_KP5 5(小鍵盤)
K_KP6 6(小鍵盤)
K_KP7 7(小鍵盤)
K_KP8 8(小鍵盤)
K_KP9 9(小鍵盤)
K_KP_PERIOD . 句號(小鍵盤)
K_KP_DIVIDE / 除號(小鍵盤)
K_KP_MULTIPLY * 乘號(小鍵盤)
K_KP_MINUS - 減號(小鍵盤)
K_KP_PLUS + 加號(小鍵盤)
K_KP_ENTER \r 回車鍵(小鍵盤)
K_KP_EQUALS = 等于號(小鍵盤)
K_UP 向上箭頭(up arrow)
K_DOWN 向下箭頭(down arrow)
K_RIGHT 向右箭頭(right arrow)
K_LEFT 向左箭頭(left arrow)
K_INSERT 插入符(insert)
K_HOME Home 鍵(home)
K_END End 鍵(end)
K_PAGEUP 上一頁(page up)
K_PAGEDOWN 下一頁(page down)
K_F1 F1
K_F2 F2
K_F3 F3
K_F4 F4
K_F5 F5
K_F6 F6
K_F7 F7
K_F8 F8
K_F9 F9
K_F10 F10
K_F11 F11
K_F12 F12
K_F13 F13
K_F14 F14
K_F15 F15
K_NUMLOCK 數(shù)字鍵盤鎖定鍵(numlock)
K_CAPSLOCK 大寫字母鎖定鍵(capslock)
K_SCROLLOCK 滾動鎖定鍵(scrollock)
K_RSHIFT 右邊的 shift 鍵(right shift)
K_LSHIFT 左邊的 shift 鍵(left shift)
K_RCTRL 右邊的 ctrl 鍵(right ctrl)
K_LCTRL 左邊的 ctrl 鍵(left ctrl)
K_RALT 右邊的 alt 鍵(right alt)
K_LALT 左邊的 alt 鍵(left alt)
K_RMETA 右邊的元鍵(right meta)
K_LMETA 左邊的元鍵(left meta)
K_LSUPER 左邊的 Window 鍵(left windows key)
K_RSUPER 右邊的 Window 鍵(right windows key)
K_MODE 模式轉(zhuǎn)換鍵(mode shift)
K_HELP 幫助鍵(help)
K_PRINT 打印屏幕鍵(print screen)
K_SYSREQ 魔術(shù)鍵(sysrq)
K_BREAK 中斷鍵(break)
K_MENU 菜單鍵(menu)
K_POWER 電源鍵(power)
K_EURO 歐元符號(euro)

還有一個 mod 屬性,用于描述組合鍵狀態(tài)。

以下是組合鍵的常量定義:

KeyASCII 描述
KMOD_NONE 木有同時按下組合鍵
KMOD_LSHIFT 同時按下左邊的 shift 鍵
KMOD_RSHIFT 同時按下右邊的 shift 鍵
KMOD_SHIFT 同時按下 shift 鍵
KMOD_CAPS 同時按下大寫字母鎖定鍵
KMOD_LCTRL 同時按下左邊的 ctrl 鍵
KMOD_RCTRL 同時按下右邊的 ctrl 鍵
KMOD_CTRL 同時按下 ctrl 鍵
KMOD_LALT 同時按下左邊的 alt 鍵
KMOD_RALT 同時按下右邊的 alt 鍵
KMOD_ALT 同時按下 alt 鍵
KMOD_LMETA 同時按下左邊的元鍵
KMOD_RMETA 同時按下右邊的元鍵
KMOD_META 同時按下元鍵
KMOD_NUM 同時按下數(shù)字鍵盤鎖定鍵
KMOD_MODE 同時按下模式轉(zhuǎn)換鍵

溫馨提示:如果 mod & KMOD_CTRL 是真的話,表示用戶同時按下了 Ctrl 鍵。

函數(shù)詳解pygame.key.get_focused()當(dāng)窗口獲得鍵盤的輸入焦點時返回 True。

get_focused() -> bool

當(dāng)窗口獲得鍵盤的輸入焦點時返回 True,如果窗口需要確保不失去鍵盤焦點,可以使用 pygame.event.set_grab(True) 獨占所有的輸入接口。

溫馨提示:注意,這樣做你就無法將鼠標(biāo)移出窗口客戶區(qū)了,但你仍然可以通過 Ctrl - Alt - Delete 熱鍵“解圍”。

pygame.key.get_pressed()獲取鍵盤上所有按鍵的狀態(tài)。

get_pressed() -> bools

返回一個由布爾類型值組成的序列,表示鍵盤上所有按鍵的當(dāng)前狀態(tài)。使用 key 常量作為索引,如果該元素是 True,表示該按鍵被按下。

使用該函數(shù)獲取一系列按鈕被按下的狀態(tài),并不能正確的獲取用戶輸入的文本。因為你無法知道用戶按鍵的被按下的順序,并且快速的連續(xù)按下鍵盤可能無法完全被捕獲(在兩次調(diào)用 pygame.key.get_pressed() 的過程中被忽略),也無法將這些按下的按鍵完全轉(zhuǎn)化為字符值。實現(xiàn)此功能可以通過捕獲 pygame.KEYDOWN 事件消息來實現(xiàn)。

pygame.key.get_mods()檢測是否有組合鍵被按下。

get_mods() -> int

返回一個包含所有組合鍵位掩碼的整數(shù)。使用位操作符 & 你可以檢測某個組合鍵是否被按下。

溫馨提示:假如 pygame.key.get_mods() 返回值存放在 mods 變量中,如果 mods & KMOD_CTRL 為 True,表示 ctrl 鍵正被按下。

pygame.key.set_mods() 臨時設(shè)置某些組合鍵為被按下狀態(tài)。

set_mods(int) -> None

創(chuàng)建一個位掩碼整數(shù),包含你需要設(shè)置為被按下狀態(tài)的組合鍵。

溫馨提示:比如我們需要設(shè)置 ctrl 和 alt 組合鍵為按下狀態(tài),則可以 mods = KMOD_CTRL | KMOD_ALT,然后調(diào)用 pygame.key.set_mods(mods),這樣盡管用戶沒有按下 ctrl 和 alt 組合鍵,它們依然是顯示被按下狀態(tài)。

pygame.key.set_repeat()控制重復(fù)響應(yīng)持續(xù)按下按鍵的時間。

set_repeat() -> None

set_repeat(delay, interval) -> None

當(dāng)開啟重復(fù)響應(yīng)按鍵,那么用戶持續(xù)按下某一按鍵,就會不斷產(chǎn)生同一 pygame.KEYDOWN 事件。delay 參數(shù)設(shè)置多久后(單位是毫秒)開始發(fā)送第一個 pygame.KEYDOWN 事件。interval 參數(shù)設(shè)置發(fā)送兩個事件之間的間隔。如果不傳入任何參數(shù),表示取消重復(fù)響應(yīng)按鍵。

pygame.key.get_repeat()獲取重復(fù)響應(yīng)按鍵的參數(shù)。

get_repeat() -> (delay, interval)

當(dāng)開啟重復(fù)響應(yīng)按鍵,那么用戶持續(xù)按下某一按鍵,就會不斷產(chǎn)生同一 pygame.KEYDOWN 事件。返回值是一個二元組,第一個元素 delay 表示多久后(單位是毫秒)開始發(fā)送第一個 pygame.KEYDOWN 事件。第二個元素 interval 表示發(fā)送兩個事件之間的間隔。

默認(rèn)情況下重復(fù)響應(yīng)按鍵是沒有開啟的。

Pygame 1.8 新增加的。

pygame.key.name()獲取按鍵標(biāo)識符對應(yīng)的名字。

name(key) -> string

獲取一個按鍵標(biāo)識符對應(yīng)的字符串描述

8.locals模塊

pygame.localsPygame 定義的常量。

這個模塊包含了 Pygame 定義的各種常量。它的內(nèi)容會被自動放入到 Pygame 模塊的名字空間中。你可以使用

from pygame.locals import將所有的 Pygame 常量導(dǎo)入。

各個常量的詳細(xì)描述記錄在 Pygame 各個模塊的相關(guān)文檔中。比如 pygame.display.set_mode() 方法用到的 HWSURFACE 常量,你就可以在 display 模塊的文檔中找到詳細(xì)的說明;事件類型在 event 模塊的文檔中可以找到;當(dāng)產(chǎn)生 KEYDOWN 或 KEYUP 事件時,key 屬性描述具體哪個按鍵被按下,該值是以 K_ 開頭的常量(MOD_ 開頭的常量表示各種組合鍵被按下),在 key 模塊的文檔中可以找到;最后,TIME_RESOLUTION 被定義在 time 模塊中。

9.mixer模塊

pygame.mixer用于加載和播放聲音的pygame模塊

函數(shù)

  • pygame.mixer.init ?— ?初始化混音器模塊

  • pygame.mixer.pre_init ?— ?預(yù)設(shè)混音器初始化參數(shù)

  • pygame.mixer.quit ?— ?卸載混音器模塊

  • pygame.mixer.get_init ?— ?測試混音器是否初始化

  • pygame.mixer.stop ?— ?停止播放所有通道

  • pygame.mixer.pause ?— ?暫停播放所有通道

  • pygame.mixer.unpause ?— ?恢復(fù)播放

  • pygame.mixer.fadeout ?— ?淡出停止

  • pygame.mixer.set_num_channels ?— ?設(shè)置播放頻道的總數(shù)

  • pygame.mixer.get_num_channels ?— ?獲取播放頻道的總數(shù)

  • pygame.mixer.set_reserved ?— ?預(yù)留頻道自動使用

  • pygame.mixer.find_channel ? — ?找到一個未使用的頻道

  • pygame.mixer.get_busy ?— ?測試混音器是否正在使用類

  • pygame.mixer.Sound ? — ?從文件或緩沖區(qū)對象創(chuàng)建新的Sound對象

  • pygame.mixer.Channel ? — ?創(chuàng)建一個Channel對象來控制播放

此模塊包含用于加載 Sound 對象和控制播放的類。混音器模塊是可選的,取決于SDL_mixer。您的程序應(yīng)該在使用它之前 測試 pygame.mixer 模塊是否可用并進(jìn)行初始化。

混音器模塊具有有限數(shù)量的聲音播放聲道。通常程序會告訴 pygame 開始播放音頻,它會自動選擇一個可用的頻道。默認(rèn)為8個并發(fā)通道,但復(fù)雜的程序可以更精確地控制通道數(shù)量及其使用。

所有聲音播放都混合在后臺線程中。當(dāng)您開始播放Sound對象時,它會在聲音繼續(xù)播放時立即返回。單個Sound對象也可以自動播放多次。

混音器還有一個特殊流通道用于音樂播放,可通過 pygame.mixer.music 模塊訪問。

混音器模塊必須像其他 pygame 模塊一樣進(jìn)行初始化,但它有一些額外的條件。pygame.mixer.init() 函數(shù)采用幾個可選參數(shù)來控制播放速率和樣本大小。Pygame將 默認(rèn)為合理的值,但pygame無法執(zhí)行聲音重采樣,因此應(yīng)初始化混音器以匹配音頻資源的值。

注意:不要使用較少的延遲聲音,請使用較小的緩沖區(qū)大小。?默認(rèn)設(shè)置為減少某些計算機上發(fā)出沙啞聲音的可能性。?您可以在 pygame.mixer.init() 或者 pygame.init() 之前 通過調(diào)用pygame.mixer.pre_init()預(yù)設(shè)混合器初始化參數(shù)來更改默認(rèn)緩沖區(qū)。?例如:pygame.mixer.pre_init(44100,-16,2,1024)。在pygame 1.8中,默認(rèn)大小從1024更改為3072。

函數(shù)詳解pygame.mixer.init() 初始化混音器模塊 init(frequency=22050, size=-16, channels=2, buffer=4096) -> None 初始化混音器模塊以進(jìn)行聲音加載和播放。默認(rèn)參數(shù)可以被改變以提供特定的音頻混合。允許使用關(guān)鍵字參數(shù)。對于參數(shù)設(shè)置為零的向后兼容性,使用默認(rèn)值(可能由pre_init調(diào)用更改)。

size參數(shù)表示每個音頻樣本使用的位數(shù)。如果值為負(fù),則將使用帶符號的樣本值。正值表示將使用不帶符號的音頻樣本。無效值會引發(fā)異常。

pygame 2中的新功能(使用SDL2編譯時) - 大小可以是32(32位浮點數(shù))。

channels參數(shù)用于指定是使用單聲道還是立體聲。1表示單聲道,2表示立體聲。不支持其他值(負(fù)值被視為1,大于2的值被視為2)。

buffer參數(shù)控制混音器中使用的內(nèi)部采樣數(shù)。默認(rèn)值應(yīng)適用于大多數(shù)情況。可以降低它以減少延遲,但可能會發(fā)生聲音丟失。它可以被提升到更大的值,以確保播放永遠(yuǎn)不會跳過,但它會對聲音播放施加延遲。緩沖區(qū)大小必須是2的冪(如果不是,則向上舍入到下一個最接近的2的冪)。

某些平臺需要在 display 模塊初始化后初始化pygame.mixer 模塊。頂級pygame.init() 自動處理此問題,但無法將任何參數(shù)傳遞給 mixer init。為了解決這個問題,mixer 具有pygame.mixer.pre_init() 函數(shù)在使用頂層初始化之前設(shè)置正確默認(rèn)值。

多次調(diào)用是安全的,但是在初始化混音器后,如果沒有先調(diào)用 pygame.mixer.quit(),則無法更改播放參數(shù) 。

pygame.mixer.pre_init(預(yù)設(shè)混音器初始化參數(shù)

pre_init(frequency=22050, size=-16, channels=2, buffersize=4096) -> None

調(diào)用 pre_init 可以更改調(diào)用 真正的初始化 pygame.mixer.init() 使用的默認(rèn)值。允許使用關(guān)鍵字參數(shù)。設(shè)置自定義混音器播放值的最佳方法是 在調(diào)用頂級 pygame.init() 之前調(diào)用 pygame.mixer.pre_init()。對于向后兼容性參數(shù),零值將替換為啟動默認(rèn)值。

pygame.mixer.quit()退出混音器

quit() -> None

這將卸載 pygame.mixer,如果稍候重新初始化,則所有播放將停止并且任何加載的Sound對象可能與混音器不兼容。

pygame.mixer.get_init()測試混音器是否初始化

get_init() -> (frequency, format, channels)

如果混合器已初始化,則返回正在使用的播放參數(shù)。如果混音器尚未初始化,則返回None

pygame.mixer.stop()停止播放所有聲道

stop() -> None

這將停止所有活動混音器通道的播放。

pygame.mixer.pause()暫時停止播放所有聲道

pause() -> None

這將暫時停止活動混音器通道上的所有播放。稍后可以 通過 pygame.mixer.unpause() 恢復(fù)播放

pygame.mixer.unpause()恢復(fù)播放聲道

unpause() -> None

這將在暫停后恢復(fù)所有活動聲道。

pygame.mixer.fadeout()停止前淡出所有聲音的音量

fadeout(time) -> None

這將在設(shè)定時間上淡出所有活動通道上的音量,時間以毫秒為單位。聲音靜音后,播放將停止。

pygame.mixer.set_num_channels()設(shè)置播放頻道的總數(shù)

set_num_channels(count) -> None

設(shè)置調(diào)音臺的可用頻道數(shù)。默認(rèn)值為8。可以增加或減少該值。如果該值減小,則截斷的通道上播放的聲音將停止。

pygame.mixer.get_num_channels()獲取播放頻道的總數(shù)

get_num_channels() -> count

返回當(dāng)前活動的播放通道數(shù)。

pygame.mixer.set_reserved()預(yù)留頻道自動使用

set_reserved(count) -> None

調(diào)音臺可以保留任意數(shù)量的通道,這些通道不會被聲音自動選擇播放。如果聲音當(dāng)前正在預(yù)留頻道播放,則不會停止。

這允許應(yīng)用程序為重要聲音保留特定數(shù)量的聲道,這些聲音不得被丟棄或具有可保證的頻道。

pygame.mixer.find_channel()找到一個未使用的頻道

find_channel(force=False) -> Channel

這將找到并返回一個非活動的Channel對象。如果沒有非活動通道,則此函數(shù)將返回None。如果沒有非活動通道且force參數(shù)為True,則會找到運行時間最長的聲道并返回它。

如果調(diào)音臺有 pygame.mixer.set_reserved() 保留頻道,則此處不會返回這些頻道。

pygame.mixer.get_busy()測試mixer 是否正忙

get_busy() -> bool

如果混音器正忙,則返回True。如果混音器處于空閑狀態(tài),則返回False。

類 pygame.mixer.Sound 從文件或緩沖區(qū)對象創(chuàng)建新的Sound對象

Sound(filename) -> Sound Sound(file=filename) -> Sound Sound(buffer) -> Sound Sound(buffer=buffer) -> Sound Sound(object) -> Sound Sound(file=object) -> Sound Sound(array=object) -> Sound

  • pygame.mixer.Sound.play? ? ? ? -? ? ? ? 開始播放聲音

  • pygame.mixer.Sound.stop? ? ? ? -? ? ? ? 停止聲音播放

  • pygame.mixer.Sound.fadeout ?? ? ? -? ? ? ? 淡出后停止聲音播放

  • pygame.mixer.Sound.set_volume? ? ? ? -? ? ? ? 設(shè)置此聲音的播放音量

    • pygame.mixer.Sound.get_volume? ? ? ? -? ? ? ? 獲取播放音量

  • pygame.mixer.Sound.get_num_channels? ? ? ? -? ? ? ? 計算此聲音播放的次數(shù)

  • pygame.mixer.Sound.get_length? ? ? ? -? ? ? ? 得到聲音的長度

  • pygame.mixer.Sound.get_raw ?? ? ? -? ? ? ? 返回Sound樣本的bytestring副本。從文件名,python文件對象或可讀緩沖區(qū)對象加載新的聲音緩沖區(qū)。將執(zhí)行有限的重新采樣以幫助樣本匹配混音器的初始化參數(shù)。Unicode字符串只能是文件路徑名。Python 2.x字符串或Python 3.x字節(jié)對象可以是路徑名或緩沖區(qū)對象。使用'file'或'buffer'關(guān)鍵字來避免歧義; 否則Sound可能會猜錯。如果使用了array關(guān)鍵字,則該對象應(yīng)該導(dǎo)出版本3,C級別數(shù)組接口,或者對于Python 2.6或更高版本,導(dǎo)出新的緩沖區(qū)接口(首先檢查該對象的緩沖區(qū)接口。)

Sound對象表示實際的聲音樣本數(shù)據(jù)。更改Sound對象狀態(tài)的方法將是Sound播放的所有實例。Sound對象還導(dǎo)出數(shù)組接口,對于Python 2.6或更高版本,還會導(dǎo)出新的緩沖區(qū)接口。

可以從OGG音頻文件或未壓縮的 WAV 文件加載聲音。

注意:緩沖區(qū)將在內(nèi)部復(fù)制,不會在它與Sound對象之間共享數(shù)據(jù)。

目前緩沖區(qū)和數(shù)組支持與sndarray.make_sound 數(shù)值數(shù)組一致,因為忽略了樣本符號和字節(jié)順序。這將通過正確處理符號和字節(jié)順序或在不同時引發(fā)異常來改變。此外,截斷源樣本以適合音頻樣本大小。這不會改變。

pygame.mixer.Sound(buffer)是pygame 1.8中新增的pygame.mixer.Sound關(guān)鍵字參數(shù)和數(shù)組接口支持pygame 1.9.2中的新功能。

play()開始播放聲音

play(loops=0, maxtime=0, fade_ms=0) -> Channel

在可用頻道上開始播放聲音(即,在計算機的揚聲器上)。?這將強制選擇一個頻道,因此如有必要,播放可能會切斷當(dāng)前正在播放的聲音。

loops參數(shù)控制第一次播放后樣本重復(fù)的次數(shù)。值 5 表示聲音將播放一次,然后重復(fù)播放五次,因此共播放六次。默認(rèn)值(0)表示聲音不重復(fù),因此只播放一次。如果循環(huán)設(shè)置為-1,則Sound將無限循環(huán)(但是您仍然可以調(diào)用stop()來停止它)。

maxtime參數(shù)可用于在給定的毫秒數(shù)后停止播放。

fade_ms參數(shù)將使聲音以0音量開始播放,并在給定時間內(nèi)逐漸升至全音量。樣本可以在淡入完成之前結(jié)束。

這將返回所選通道的Channel對象。

stop()停止聲音播放

stop() -> None

這將停止在任何活動頻道上播放此聲音。

fadeout()淡出后停止聲音播放

fadeout(time) -> None

這將在以毫秒為單位在時間參數(shù)上淡出后停止播放聲音。Sound會在所有播放的頻道上消失并停止。

set_volume()設(shè)置此聲音的播放音量

set_volume(value) -> None

這將設(shè)置此聲音的播放音量(響度)。如果正在播放,這將立即影響聲音。它也會影響此聲音的任何未來播放。參數(shù)是從0.0到1.0的值。

get_volume()獲取播放音量

get_volume() -> value

返回0.0到1.0之間的值,表示此Sound的音量。

get_num_channels()計算此聲音播放的次數(shù)

get_num_channels() -> count

返回此聲音正在播放的活動頻道數(shù)。

get_length()得到聲音的長度

get_length() -> seconds

以秒為單位返回此聲音的長度。

get_raw()返回Sound樣本的bytestring副本。

get_raw() -> bytes

將Sound對象緩沖區(qū)的副本作為字節(jié)(對于Python 3.x)或str(對于Python 2.x)對象返回。

pygame 1.9.2中的新功能。

pygame.mixer.Channel創(chuàng)建一個Channel對象來控制播放

Channel(id) -> Channel

  • pygame.mixer.Channel.play? ? ? ? -? ? ? ? 在特定頻道播放聲音

  • pygame.mixer.Channel.stop ? ? ? ?- ? ? ? ?停止在頻道上播放

  • pygame.mixer.Channel.pause ? ? ? ?- ? ? ? ?暫時停止播放頻道

  • pygame.mixer.Channel.unpause ? ? ? ?- ? ? ? ?恢復(fù)暫停播放頻道

  • pygame.mixer.Channel.fadeout ? ? ? ?- ? ? ? ?淡出通道后停止播放

  • pygame.mixer.Channel.set_volume ? ? ? ?- ? ? ? ?設(shè)置播放頻道的音量

  • pygame.mixer.Channel.get_volume ? ? ? ?- ? ? ? ?獲得播放頻道的音量

  • pygame.mixer.Channel.get_busy ? ? ? ?- ? ? ? ?檢查通道是否處于活動狀態(tài)

  • pygame.mixer.Channel.get_sound ? ? ? ?- ? ? ? ?得到當(dāng)前播放的聲音

  • pygame.mixer.Channel.queue ? ? ? ?- ? ? ? ?排隊Sound對象以跟隨當(dāng)前

  • pygame.mixer.Channel.get_queue ? ? ? ?- ? ? ? ?返回排隊的任何聲音

  • pygame.mixer.Channel.set_endevent ? ? ? ?- ? ? ? ?播放停止時讓頻道發(fā)送事件

  • pygame.mixer.Channel.get_endevent ? ? ? ?- ? ? ? ?獲取播放停止時頻道發(fā)送的事件

返回其中一個當(dāng)前通道的Channel對象。id必須是從0到 值pygame.mixer.get_num_channels() 的值。

Channel對象可用于精確控制Sounds的播放。一個頻道只能播放一個聲音。使用頻道完全是可選的,因為pygame默認(rèn)可以管理它們。

play()在特定頻道上播放聲音

play(Sound, loops=0, maxtime=0, fade_ms=0) -> None

這將開始播放特定頻道上的聲音。?如果頻道正在播放任何其他聲音,它將被停止。

loops參數(shù)與Sound.play()中的含義相同:它是第一次重復(fù)聲音的次數(shù)。?如果是3,聲音將播放4次(第一次,然后是三次)。?如果循環(huán)為-1,則播放將無限重復(fù)。

與Sound.play()一樣,maxtime參數(shù)可用于在給定的毫秒數(shù)后停止播放聲音。

與Sound.play()一樣,fade_ms參數(shù)可以在聲音中淡入淡出。

stop()停止在頻道上播放聲音

stop() -> None

停止在頻道上播放聲音。播放停止后,頻道可用于播放新的聲音。

pause()暫時停止播放頻道

pause() -> None

暫時停止在頻道上播放聲音。它可以在之后調(diào)用 Channel.unpause() 恢復(fù)

unpause()恢復(fù)暫停播放頻道

unpause() -> None

在暫停的頻道上恢復(fù)播放。

fadeout()淡出通道后停止播放

fadeout(time) -> None

在給定時間參數(shù)上淡出聲音后,以毫秒為單位停止播放通道。

set_volume()設(shè)置播放頻道的音量

set_volume(value) -> None

set_volume(left, right) -> None

設(shè)定播放聲音的音量(響度)。當(dāng)頻道開始播放時,其音量值將被重置。這只會影響當(dāng)前的聲音。value參數(shù)介于0.0和1.0之間。

如果傳遞一個參數(shù),則它將是兩個發(fā)言者的音量。如果傳遞兩個參數(shù)并且混音器處于立體聲模式,則第一個參數(shù)將是左揚聲器的音量,第二個參數(shù)將是右揚聲器的音量。(如果第二個參數(shù)為None,則第一個參數(shù)將是兩個揚聲器的音量。)

如果頻道正在播放set_volume()已調(diào)用的聲音,則會同時考慮這兩個呼叫。例如:

sound = pygame.mixer.Sound("s.wav") channel = s.play()? ?? ?# Sound plays at full volume by default sound.set_volume(0.9)? ?# Now plays at 90% of full volume. sound.set_volume(0.6)? ?# Now plays at 60% (previous value replaced). channel.set_volume(0.5) # Now plays at 30% (0.6 * 0.5).

get_volume()獲得播放頻道的音量

get_volume() -> value

返回當(dāng)前播放聲音的通道音量。這沒有考慮到使用的立體聲分離 Channel.set_volume()。Sound對象也有自己的音量,與音頻混合。

get_busy()檢查通道是否處于活動狀態(tài)

get_busy() -> bool

如果通道正在主動混合聲音,則返回true。如果通道空閑,則返回False。

get_sound()得到當(dāng)前播放的聲音

get_sound() -> Sound

返回當(dāng)前在此頻道上播放的實際Sound對象。如果通道空閑,則返回None。

queue()排隊Sound對象以跟隨當(dāng)前

queue(Sound) -> None

當(dāng)聲音在頻道上排隊時,它將在當(dāng)前聲音結(jié)束后立即開始播放。每個通道一次只能排隊一個聲音。排隊的聲音僅在當(dāng)前播放自動結(jié)束時播放。在對Channel.stop()或的任何其他呼叫中清除它 Channel.play()。

如果在頻道上沒有主動播放聲音,則聲音將立即開始播放。

get_queue()返回排隊的任何聲音

get_queue() -> Sound

如果聲音已在此頻道上排隊,則會返回該聲音。一旦排隊的聲音開始播放,它將不再在隊列中。

set_endevent()播放停止時讓頻道發(fā)送事件

set_endevent() -> None

set_endevent(type) -> None

當(dāng)為某個頻道設(shè)置了一個嘗試時,每當(dāng)一個聲音在該頻道上播放時(不僅僅是第一次),它就會向一個游戲隊列發(fā)送一個事件。使用pygame.event.get()一旦它發(fā)送到檢索ENDEVENT。

請注意,如果您調(diào)用Sound.play(n)或Channel.play(sound,n),結(jié)束事件僅發(fā)送一次:聲音播放“n + 1”次后(請參閱Sound.play文檔)。

如果在聲音仍然播放時調(diào)用Channel.stop()或Channel.play()調(diào)用,則會立即發(fā)布事件。

type參數(shù)將是發(fā)送到隊列的事件id。這可以是任何有效的事件類型,但一個好的選擇是pygame.locals.USEREVENT和之間的值 pygame.locals.NUMEVENTS。如果沒有給出類型參數(shù),那么Channel將停止發(fā)送事件。

get_endevent()獲取播放停止時頻道發(fā)送的事件

get_endevent() -> type

返回每次Channel完成聲音播放時要發(fā)送的事件類型。如果沒有功能返回該功能 pygame.NOEVENT。

10.mouse模塊

pygame.mousePygame 中與鼠標(biāo)工作相關(guān)的模塊。

函數(shù)

  • pygame.mouse.get_pressed() ?—— ?獲取鼠標(biāo)按鍵的情況(是否被按下)

  • pygame.mouse.get_pos() ?—— ?獲取鼠標(biāo)光標(biāo)的位置

  • pygame.mouse.get_rel() ?—— ?獲取鼠標(biāo)一系列的活動

  • pygame.mouse.set_pos() ?—— ?設(shè)置鼠標(biāo)光標(biāo)的位置

  • pygame.mouse.set_visible() ?—— ?隱藏或顯示鼠標(biāo)光標(biāo)

  • pygame.mouse.get_focused() ?—— ?檢查程序界面是否獲得鼠標(biāo)焦點

  • pygame.mouse.set_cursor() ?—— ?設(shè)置鼠標(biāo)光標(biāo)在程序內(nèi)的顯示圖像

  • pygame.mouse.get_cursor() ?—— ?獲取鼠標(biāo)光標(biāo)在程序內(nèi)的顯示圖像

這些函數(shù)可以用于獲取目前鼠標(biāo)設(shè)備的情況,也可以改變鼠標(biāo)在程序內(nèi)的顯示光標(biāo)。

當(dāng)設(shè)置顯示模式之后,事件隊列將開始接收鼠標(biāo)事件。當(dāng)鼠標(biāo)按鍵被按下時會產(chǎn)生 pygame.MOUSEBUTTONDOWN 事件,當(dāng)鼠標(biāo)按鍵被松開時會產(chǎn)生 pygame.MOUSEBUTTONUP 事件。這些事件包含了一個按鍵屬性,用于表示具體由哪個按鍵所觸發(fā)。

當(dāng)鼠標(biāo)滑輪被滾動時也會產(chǎn)生 pygame.MOUSEBUTTONDOWN 和 pygame.MOUSEBUTTONUP 事件。當(dāng)鼠標(biāo)滑輪往上滾動時,按鍵將會被設(shè)置成4;當(dāng)鼠標(biāo)滑輪向下滾動時,按鍵會被設(shè)置成 5。

任何時候鼠標(biāo)移動都會產(chǎn)生一個 pygame.MOUSEMOTION 事件。鼠標(biāo)的活動被拆分成小而精確的事件。當(dāng)鼠標(biāo)運動時,大量的運動事件會被放入相應(yīng)的隊列中等待處理。沒有及時清除掉一些運動事件是隊列被塞滿的主要原因。

如果鼠標(biāo)光標(biāo)被隱藏并且輸入被當(dāng)前顯示器占用,鼠標(biāo)會進(jìn)入虛擬輸入模式,在此模式內(nèi),鼠標(biāo)的相關(guān)活動不會因為屏幕的邊界限制而停止。調(diào)用 pygame.mouse.set_visible() 方法和 pygame.event.set_grab()? 方法進(jìn)行設(shè)置。

函數(shù)詳解pygame.mouse.get_pressed()獲取鼠標(biāo)按鍵的情況(是否被按下)。

get_pressed() -> (button1, button2, button3)

返回一個由布爾值組成的列表,代表所有鼠標(biāo)按鍵被按下的情況。True 意味著在調(diào)用此方法時該鼠標(biāo)按鍵正被按下。

注意1:獲取所有的鼠標(biāo)事件最好是使用 pygame.event.wait()?方法或者 pygame.event.get()?方法,然后檢查確認(rèn)所有事件是 MOUSEBUTTONDOWN、MOUSEBUTTONUP 或者 MOUSEMOTION。

注意2:在 X11 上一些 XServers 使用中間按鍵仿真機制。當(dāng)你同時點擊按鍵 1 和 3 時會發(fā)出一個按鍵 2 被按下的事件。

注意3:在使用此方法前記住要先調(diào)用 pygame.event.get()?方法,否則此方法將不會工作。

pygame.mouse.get_pos() 獲取鼠標(biāo)光標(biāo)的位置。

get_pos() -> (x, y)

返回鼠標(biāo)光標(biāo)的坐標(biāo) (x, y)。這個坐標(biāo)以窗口左上角為基準(zhǔn)點。光標(biāo)位置可以被定位于窗口之外,但是通常被強制性限制在屏幕內(nèi)。

pygame.mouse.get_rel()獲取鼠標(biāo)一系列的活動。

get_rel() -> (x, y)

返回在調(diào)用此方法之前的一系列活動坐標(biāo) (x, y)。鼠標(biāo)光標(biāo)的相關(guān)活動被限制在屏幕范圍內(nèi),但是通過虛擬輸入模式可以突破這個限制。此頁面的頂部有虛擬輸入模式的描述。

pygame.mouse.set_pos()設(shè)置鼠標(biāo)光標(biāo)的位置。

set_pos([x, y]) -> None

通過提供相應(yīng)的參數(shù)來設(shè)置當(dāng)前鼠標(biāo)的位置。如果鼠標(biāo)光標(biāo)是可視的,則光標(biāo)將會跳到新的坐標(biāo)上。移動鼠標(biāo)將會產(chǎn)生一個新的 pygame.MOUSEMOTION 事件。

pygame.mouse.set_visible()隱藏或顯示鼠標(biāo)光標(biāo)。

set_visible(bool) -> bool

如果返回的布爾值為 True,鼠標(biāo)光標(biāo)將會是可視的。返回光標(biāo)在調(diào)用該方法之前的可視化情況。

pygame.mouse.get_focused()檢查程序界面是否獲得鼠標(biāo)焦點。

get_focused() -> bool

當(dāng) pygame 正在接受鼠標(biāo)輸入事件(或者用專業(yè)術(shù)語說,鼠標(biāo)正在處于“active”或“focus”狀態(tài))返回值為 True。

一般情況下此方法用于窗口模式。在全屏模式下,該方法總會返回 True。

注意:在 MS Windows 系統(tǒng)中,一個窗口可以同時對鼠標(biāo)和鍵盤事件保持監(jiān)聽。但是在 X-Windows 系統(tǒng)中,需要用一個窗口監(jiān)聽鼠標(biāo)事件而另一個窗口監(jiān)聽鍵盤事件。pygame.mouse.get_focused() 可以表示 pygame 窗口是否在接收鼠標(biāo)事件。

pygame.mouse.set_cursor()設(shè)置鼠標(biāo)光標(biāo)在程序內(nèi)的顯示圖像。

set_cursor(size, hotspot, xormasks, andmasks) -> None

當(dāng)鼠標(biāo)光標(biāo)是可視的時,它將通過我們提供的位掩碼數(shù)組顯示為一個黑白色的位圖。size 指定光標(biāo)的寬度和高度。hotspot 指定光標(biāo)的熱點位置。xormasks 指定一組字節(jié),用于進(jìn)行按位異或掩碼的計算。andmasks 指定一組字節(jié),用于進(jìn)行按位與掩碼的計算。

光標(biāo)的寬度必須是 8 的倍數(shù),并且提供的位掩碼數(shù)組必須與寬度、高度匹配。否則將拋出異常。

關(guān)于如何創(chuàng)建一個系統(tǒng)光標(biāo),請查看 pygame.cursor 模塊。

pygame.mouse.get_cursor()獲取鼠標(biāo)光標(biāo)在程序內(nèi)的顯示圖像。

get_cursor() -> (size, hotspot, xormasks, andmasks)

11.Rect對象

class pygame.RectRect 是用于存儲矩形坐標(biāo)的 Pygame 對象。

Rect(left, top, width, height) -> Rect

Rect((left, top), (width, height)) -> Rect

Rect(object) -> Rect

屬性 & 方法

  • pygame.Rect.copy() ?— ?拷貝 Rect 對象

  • pygame.Rect.move() ?— ?移動 Rect 對象

  • pygame.Rect.move_ip() ?— ?原地移動 Rect 對象

  • pygame.Rect.inflate() ?— ?放大和縮小 Rect 對象的尺寸

  • pygame.Rect.inflate_ip() ?— ?原地放大和縮小 Rect 對象的尺寸

  • pygame.Rect.clamp() ?— ?將一個 Rect 對象移動到另一個 Rect 對象的中心

  • pygame.Rect.clamp_ip() ?— ?原地將一個 Rect 對象移動到另一個 Rect 對象的中心

  • pygame.Rect.clip() ?— ?獲取兩個 Rect 對象互相重疊的部分

  • pygame.Rect.union() ?— ?將兩個 Rect 對象合并

  • pygame.Rect.union_ip() ?— ?原地將兩個 Rect 對象合并

  • pygame.Rect.unionall() ?— ?將多個 Rect 對象合并

  • pygame.Rect.unionall_ip() ?— ?原地將多個 Rect 對象合并

  • pygame.Rect.fit() ?— ?按照一定的寬高比調(diào)整 Rect 對象

  • pygame.Rect.normalize() ?— ?翻轉(zhuǎn) Rect 對象(如果尺寸為負(fù)數(shù))

  • pygame.Rect.contains() ?— ?檢測一個 Rect 對象是否完全包含在該 Rect 對象內(nèi)

  • pygame.Rect.collidepoint() ?— ?檢測一個點是否包含在該 Rect 對象內(nèi)

  • pygame.Rect.colliderect() ?— ?檢測兩個 Rect 對象是否重疊

  • pygame.Rect.collidelist() ?— ?檢測該 Rect 對象是否與列表中的任何一個矩形有交集

  • pygame.Rect.collidelistall() ?— ?檢測該 Rect 對象與列表中的每個矩形是否有交集

  • pygame.Rect.collidedict() ?— ?檢測該 Rect 對象是否與字典中的任何一個矩形有交集

  • pygame.Rect.collidedictall() ?— ?檢測該 Rect 對象與字典中的每個矩形是否有交集

Pygame 通過 Rect 對象存儲和操作矩形區(qū)域。一個 Rect 對象可以由 left,top,width,height 幾個值創(chuàng)建。Rect 也可以是由 Pygame 的對象所創(chuàng)建,它們擁有一個屬性叫“rect”。

任何需要一個 Rect 對象作為參數(shù)的 Pygame 函數(shù)都可以使用以上值構(gòu)造一個 Rect。這樣使得作為參數(shù)傳遞的同時創(chuàng)建 Rect 成為可能。

Rect 對象中的大部分方法在修改矩形的位置、尺寸后會返回一個新的 Rect 拷貝,原始的 Rect 對象不會有任何改變。但有些方法比較特殊,它們會“原地”修改 Rect 對象(也就是說它們會改動原始的 Rect 對象),這些方法都會以 "ip" 作為后綴(小甲魚溫馨提示:"ip" 即 "in-place" 的縮寫,“原地”的意思)。

對了方便大家移動和對齊,Rect 對象提供以下這些虛擬屬性:

x,y top, left, bottom, right topleft, bottomleft, topright, bottomright midtop, midleft, midbottom, midright center, centerx, centery size, width, height w,h 上邊這些屬性均可以被賦值,例如:

rect1.right = 10 rect2.center = (20,30) 給 size,width,height 屬性賦值將改變矩形的尺寸;給其它屬性賦值將移動矩形。注意:一些屬性是整數(shù),一些是整數(shù)對。

如果一個 Rect 對象的 width 或 height 非 0,那么將在非 0 測試中返回 True。一些方法返回尺寸為 0 的 Rect 對象,用于表示一個非法的矩形。

Rect 對象的坐標(biāo)都是整數(shù),size 的值可以是負(fù)數(shù),但在大多數(shù)情況下被認(rèn)為是非法的。

還有一些方法可以實現(xiàn)矩形間碰撞檢測,大多數(shù) Python 的容器可以用于檢索其中的元素與某個 Rect 對象是否碰撞。

Rect 對象覆蓋的范圍并不包含 right 和 bottom 指定的邊緣位置。

溫馨提示,一圖勝千言:

這樣的話,如果一個 Rect 對象的 bottom 邊框恰好是另一個 Rect 對象的 top 邊框(即 rect1.bottom == rect2.top),那么兩矩形就恰好沒有重疊的顯示在屏幕上,rect1.colliderect(rect2) 也將返回 False。

盡管 Rect 對象可以被繼承,但 Rect 的方法返回的是一個全新的 Rect 對象,而不是其子對象。

屬性 & 方法詳解copy()拷貝 Rect 對象。

copy() -> Rect

返回一個新的 Rect 對象,擁有與該 Rect 對象相同的位置和尺寸。

Pygame 1.9 新增加的。

move()移動 Rect 對象。

move(x, y) -> Rect

返回一個新的 Rect 對象。x 和 y 參數(shù)可以是正數(shù)或負(fù)數(shù),用于指定新對象的偏移地址。

move_ip()原地移動 Rect 對象。

move_ip(x, y) -> None

效果跟 move() 方法一樣,區(qū)別是這個直接作用于當(dāng)前 Rect 對象,而不是返回一個新的。

inflate()放大和縮小 Rect 對象的尺寸。

inflate(x, y) -> Rect

返回一個新的 Rect 對象。x 和 y 參數(shù)指定新的對象放大或縮小多少像素。新的對象保持與原始 Rect 對象在同一個中心上。

inflate_ip()原地放大和縮小 Rect 對象的尺寸。

inflate_ip(x, y) -> None

效果跟 inflate() 方法一樣,區(qū)別是這個直接作用于當(dāng)前 Rect 對象,而不是返回一個新的。

clamp()將一個 Rect 對象移動到另一個 Rect 對象的中心。

clamp(Rect) -> Rect

返回一個新的 Rect 對象,范圍是以 Rect 參數(shù)指定的對象為中心,保持原始 Rect 對象的尺寸不變。如果原始 Rect 對象的尺寸比 Rect 參數(shù)的要大,那么保持中心重疊,尺寸不變。

clamp_ip()原地將一個 Rect 對象移動到另一個 Rect 對象的中心。

clamp_ip(Rect) -> None

效果跟 clamp() 方法一樣,區(qū)別是這個直接作用于當(dāng)前 Rect 對象,而不是返回一個新的。

clip()獲取兩個 Rect 對象互相重疊的部分。

clip(Rect) -> Rect

返回一個新的 Rect 對象,范圍是原始 Rect 對象與 Rect 參數(shù)指定的對象互相重疊的部分。如果兩個 Rect 對象沒有任何重疊,則返回一個 (0, 0, 0, 0) 的 Rect 對象。

union()將兩個 Rect 對象合并。

union(Rect) -> Rect

返回一個新的 Rect 對象,范圍將包含原始 Rect 對象與 Rect 參數(shù)指定的對象。由于結(jié)果返回一個新的矩形,所以會產(chǎn)生一些多與的空間。

union_ip()原地將兩個 Rect 對象合并。

union_ip(Rect) -> None

效果跟 union() 方法一樣,區(qū)別是這個直接作用于當(dāng)前 Rect 對象,而不是返回一個新的。

unionall()將多個 Rect 對象合并。

unionall(Rect_sequence) -> Rect

返回一個新的 Rect 對象,范圍將包含 Rect_sequence 參數(shù)指定的序列中所有的 Rect 對象。

unionall_ip()原地將多個 Rect 對象合并。

unionall_ip(Rect_sequence) -> None

效果跟 unionall() 方法一樣,區(qū)別是這個直接作用于當(dāng)前 Rect 對象,而不是返回一個新的。

fit()按照一定的寬高比調(diào)整 Rect 對象。

fit(Rect) -> Rect

返回一個新的 Rect 對象,范圍是 Rect 參數(shù)的對象按照原始 Rect 對象的寬高比調(diào)整得來。

normalize()翻轉(zhuǎn) Rect 對象(如果尺寸為負(fù)數(shù))。

normalize() -> None

如果 width 或 height 存在負(fù)數(shù),則做出相應(yīng)的翻轉(zhuǎn),使其變?yōu)檎龜?shù)。翻轉(zhuǎn)后的 Rect 仍然在原來的位置,只是修改其相應(yīng)的屬性值。

contains()檢測一個 Rect 對象是否完全包含在該 Rect 對象內(nèi)。

contains(Rect) -> bool

如果 Rect 參數(shù)指定的對象完全包含在該 Rect 對象內(nèi),返回 True,否則返回 False。

collidepoint()檢測一個點是否包含在該 Rect 對象內(nèi)。

collidepoint(x, y) -> bool

collidepoint((x,y)) -> bool

如果給定的點在該 Rect 對象內(nèi),返回 True,否則返回 False。

一個點在 Rect 的 right 或 bottom 邊緣上時,并不被認(rèn)為包含在該矩形內(nèi)。

colliderect()檢測兩個 Rect 對象是否重疊。

colliderect(Rect) -> bool

如果兩個 Rect 對象有任何重疊的地方,返回 True,否則返回 False。

注意:right 和 bottom 指定的邊緣位置并不屬于對應(yīng)的矩形。

collidelist()檢測該 Rect 對象是否與列表中的任何一個矩形有交集。

collidelist(list) -> index

返回值是第 1 個有相交的矩形所在列表中的索引號(如果有的話),否則返回 -1。

collidelistall()檢測該 Rect 對象與列表中的每個矩形是否有交集。

collidelistall(list) -> indices

返回一個列表,包含所有與該 Rect 對象有交集的元素;如果一個都沒有,返回一個空列表。

collidedict()檢測該 Rect 對象是否與字典中的任何一個矩形有交集。

collidedict(dict) -> (key, value)

返回值是第 1 個有相交的矩形所在字典中的鍵和值;如果沒有找到,返回 None。

注意:因為 Rect 對象不是哈希值,所以不能作為字典的鍵存在,因此比較的只有值。

collidedictall()檢測該 Rect 對象與字典中的每個矩形是否有交集。

collidedictall(dict) -> [(key, value), ...]

返回一個列表,包含所有與該 Rect 對象有交集的鍵值對;如果一個都沒有,返回一個空字典。

注意:因為 Rect 對象不是哈希值,所以不能作為字典的鍵存在,因此比較的只有值

13.time模塊

pygame.timePygame 中用于監(jiān)控時間的模塊。

函數(shù)

  • pygame.time.get_ticks()? ——? 獲取以毫秒為單位的時間

  • pygame.time.wait()??——??暫停程序一段時間

  • pygame.time.delay()??——??暫停程序一段時間

  • pygame.time.set_timer()??——??在事件隊列上重復(fù)創(chuàng)建一個事件

  • pygame.time.Clock()??——??創(chuàng)建一個對象來幫助跟蹤時間

  • Pygame中的時間以毫秒(1/1000秒)表示。大多數(shù)平臺的時間分辨率有限,大約為10毫秒。該分辨率(以毫秒為單位) 以常量 TIMER_RESLUTION 給出。

函數(shù)詳解pygame.time.get_ticks()獲取以毫秒為單位的時間

get_ticks() -> milliseconds

返回自 pygame_init() 調(diào)用以來的毫秒數(shù)。在pygame初始化之前,這將始終為0。

**pygame.time.wait()?** 暫停程序一段時間

wait(milliseconds) -> time

將暫停一段給定的毫秒數(shù)。此函數(shù)會暫停進(jìn)程以與其他程序共享處理器。等待幾毫秒的程序?qū)⑾姆浅I俚奶幚砥鲿r間。它比pygame.time.delay() 函數(shù)稍微準(zhǔn)確一些。

這將返回實際使用的毫秒數(shù)。

**pygame.time.delay()?** 暫停程序一段時間

delay(milliseconds) -> time

將暫停一段給定的毫秒數(shù)。此功能將使用處理器(而不是休眠),使用 pygame.time.wait()?以使延遲更準(zhǔn)確。

這將返回實際使用的毫秒數(shù)。

**pygame.time.set_timer()?** 在事件隊列上重復(fù)創(chuàng)建一個事件

set_timer(eventid, milliseconds) -> None

將事件類型設(shè)置為每隔給定的毫秒數(shù)顯示在事件隊列中。第一個事件將在經(jīng)過一段時間后才會出現(xiàn)。

每種事件類型都可以附加一個單獨的計時器。在 pygame.USEREVENT 和 pygame.NUMEVENTS 中使用該值更好。

要禁用事件的計時器,請將milliseconds參數(shù)設(shè)置為0。

**pygame.time.Clock()?** 創(chuàng)建一個對象來幫助跟蹤時間

Clock() -> Clock

  • pygame.time.Clock.tick()??——??更新時鐘

  • pygame.time.Clock.tick_busy_loop()??——??更新時鐘

  • pygame.time.Clock.get_time()??——??在上一個tick中使用的時間

  • pygame.time.Clock.get_rawtime()??——??在上一個tick中使用的實際時間

  • pygame.time.Clock.get_fps()??——??計算時鐘幀率 創(chuàng)建一個新的Clock對象,可用于跟蹤一段時間。時鐘還提供了幾個功能來幫助控制游戲的幀速率。

tick()更新時鐘

tick(framerate=0) -> milliseconds

注:

應(yīng)該每幀調(diào)用一次此方法。它將計算自上一次調(diào)用以來經(jīng)過的毫秒數(shù)。

如果傳遞可選的幀率參數(shù),該函數(shù)將延遲以使游戲運行速度低于每秒給定的滴答數(shù)。這可以用于幫助限制游戲的運行時速度。通過每幀調(diào)用?一次 Clock.tick(40),程序?qū)⒂肋h(yuǎn)不會超過每秒40幀。

請注意,此函數(shù)使用SDL_Delay函數(shù),該函數(shù)在每個平臺上都不準(zhǔn)確,但不會占用太多CPU。如果你想要一個準(zhǔn)確的計時器,請使用tick_busy_loop,并且不介意咀嚼CPU。

tick_busy_loop()更新時鐘

tick_busy_loop(framerate=0) -> milliseconds

注:

應(yīng)該每幀調(diào)用一次此方法。它將計算自上一次調(diào)用以來經(jīng)過的毫秒數(shù)。

如果您傳遞可選的幀率參數(shù),該函數(shù)將延遲以使游戲運行速度低于每秒給定的滴答數(shù)。這可以用于幫助限制游戲的運行時速度。通過每幀調(diào)用?一次 Clock.tick_busy_ioop(40),程序?qū)⒂肋h(yuǎn)不會超過每秒40幀。

請注意,此函數(shù)使用 pygame.time.delay(,在繁忙的循環(huán)中使用大量CPU以確保時間更準(zhǔn)確。

pygame 1.8.0中的新功能。

get_time()? 在上一個tick中使用的時間

get_time() -> milliseconds

前兩次調(diào)用 Clock.tick() 之間傳遞的毫秒數(shù)。

get_rawtime()? 在上一個tick中使用的實際時間

get_rawtime() -> milliseconds

類似于 Clock.get_time(),但不包括? Clock.tick() 延遲限制幀速率時使用的任何時間。

get_fps()

計算時鐘幀率

get_fps() -> float

計算游戲的幀速率(以每秒幀數(shù)為單位)。它是通過平均最后十次調(diào)用來計算的? Clock.tick() 。

14.music模塊

pygame.mixer.music Pygame 中控制音頻流的模塊。

函數(shù)

  • pygame.mixer.music.load() ?—— ?載入一個音樂文件用于播放

  • pygame.mixer.music.play() ?—— ?開始播放音樂流

  • pygame.mixer.music.rewind() ?—— ?重新開始播放音樂

  • pygame.mixer.music.stop() ?—— ?結(jié)束音樂播放

  • pygame.mixer.music.pause() ?—— ?暫停音樂播放

  • pygame.mixer.music.unpause() ?—— ?恢復(fù)音樂播放

  • pygame.mixer.music.fadeout() ?—— ?淡出的效果結(jié)束音樂播放

  • pygame.mixer.music.set_volume() ?—— ?設(shè)置音量

  • pygame.mixer.music.get_volume() ?—— ?獲取音量

  • pygame.mixer.music.get_busy() ?—— ?檢查是否正在播放音樂

  • pygame.mixer.music.set_pos() ?—— ?設(shè)置播放的位置

  • pygame.mixer.music.get_pos() ?—— ?獲取播放的位置

  • pygame.mixer.music.queue() ?—— ?將一個音樂文件放入隊列中,并排在當(dāng)前播放的音樂之后

  • pygame.mixer.music.set_endevent() ?—— ?當(dāng)播放結(jié)束時發(fā)出一個事件

  • pygame.mixer.music.get_endevent() ?—— ?獲取播放結(jié)束時發(fā)送的事件

Pygame 中播放音樂的模塊和 pygame.mixer 模塊是密切聯(lián)系的。使用音樂模塊去控制在調(diào)音器上的音樂播放。

音樂(music)播放和聲音(sound)播放的不同之處在于音樂是流式的,并且絕對不會在一開始就把一個音樂文件全部載入。調(diào)音系統(tǒng)在工作剛開始時僅支持單音樂流。

注意:對于 MP3 格式的支持是受限制的。在一些系統(tǒng)上,一種不受支持的格式將會是系統(tǒng)崩潰,例如 Debian Linux。為了游戲的穩(wěn)定性,建議使用 OGG 進(jìn)行替代。

函數(shù)詳解pygame.mixer.music.load()載入一個音樂文件用于播放。

load(filename) -> None

load(object) -> None

該函數(shù)將會載入一個音樂文件名或者文件對象,并且準(zhǔn)備播放。如果已經(jīng)有音樂流正在播放,該音樂流將被停止。另外,函數(shù)不會開始播放音樂。

pygame.mixer.music.play()開始播放音樂流。

play(loops=0, start=0.0) -> None

該函數(shù)用于播放已載入的音樂流。如果音樂已經(jīng)開始播放,則將會重新開始播放。

loops 參數(shù)控制重復(fù)播放的次數(shù),例如 play(5) 意味著被載入的音樂將會立即開始播放 1 次并且再重復(fù) 5 次,共 6 次。如果 loops = -1,則表示無限重復(fù)播放。

start 參數(shù)控制音樂從哪里開始播放。開始的位置取決于音樂的格式。MP3 和 OGG 使用時間表示播放位置(以秒為單位)。MOD使用模式順序編號表示播放位置。如果音樂文件無法設(shè)置開始位置,則傳遞了start參數(shù)后會產(chǎn)生一個NotImplementedError 錯誤。

pygame.mixer.music.rewind()重新開始播放音樂。

rewind() -> None

從文件開頭開始重新播放音樂。

pygame.mixer.music.stop()結(jié)束音樂播放。

stop() -> None

如果音樂正在播放則立即結(jié)束播放。

pygame.mixer.music.pause()暫停音樂流的播放。

pause() -> None

通過調(diào)用 pygame.mixer.music.unpause() 函數(shù)繼續(xù)播放音樂。

pygame.mixer.music.unpause()恢復(fù)音樂播放。

unpause() -> None

在播放暫停后使用該函數(shù)可以繼續(xù)音樂流的播放。

pygame.mixer.music.fadeout()淡出的效果結(jié)束音樂播放。

fadeout(time) -> None

該函數(shù)將會在音樂淡出(也就是不在有聲音放出)一段指定長度的時間(以毫秒為單位)后結(jié)束播放。

注意:該函數(shù)在調(diào)用后會一直處于阻塞狀態(tài),直到音樂已經(jīng)淡出。

pygame.mixer.music.set_volume()設(shè)置音量。

set_volume(value) -> None

設(shè)置音樂的播放音量。

value 參數(shù)值范圍為 0.0~1.0。當(dāng)新的音樂文件被載入,音量會被重置。

pygame.mixer.music.get_volume()獲取音量。

get_volume() -> value

返回正在播放的音樂的音量(此音量應(yīng)該是調(diào)音器音量,注意與其他音量參數(shù)區(qū)分)。返回值范圍為 0.0~1.0。

pygame.mixer.music.get_busy()檢查是否正在播放音樂。

get_busy() -> bool

如果有音樂流正在播放,此方法返回 True。否則返回 False。

pygame.mixer.music.set_pos()設(shè)置播放的位置。

set_pos(pos) -> None

設(shè)置播放的起始位置。pos 參數(shù)是一個浮點數(shù)(或者一個可以轉(zhuǎn)換為浮點數(shù)的數(shù)值),其值取決于音樂文件的格式:

對于 MOD 文件,它是模塊中的整型模式號;對于 OGG 文件,它是一個以音頻開頭為零點的絕對時間值(以秒為單位);對于 MP3 文件,它是以當(dāng)前播放位置為零點的絕對時間值(以秒為單位)。為了對一個 MP3 文件的進(jìn)行絕對定位,建議首先調(diào)用 rewind() 函數(shù)(其他文件格式不受支持)。SDL_mixer 更新的版本提供了更好的定位支持。如果一種特殊的格式不支持定位,將會產(chǎn)生一個 SDLError 錯誤。

該函數(shù)會調(diào)用 SDL_mixer 內(nèi)的 Mix_SetMusicPosition() 函數(shù)。

pygame.mixer.music.get_pos()獲取播放的位置。

get_pos() -> time

此函數(shù)會獲得音樂的播放時長(以毫秒為單數(shù)的數(shù)值)。返回值僅代表已經(jīng)音樂已經(jīng)播放了多久,并不考慮任何起始位置偏移量。

pygame.mixer.music.queue()將一個音樂文件放入隊列中,并排在當(dāng)前播放的音樂之后。

queue(filename) -> None

此函數(shù)將會載入一個音樂文件并將其放入隊列中。當(dāng)前的音樂一旦播放完畢,正在排隊的音樂文件就會開始播放。如果當(dāng)前音樂被人為停止或者切換到其他音樂,則正在排隊的音樂會被丟棄。

下面的示例意思是先播放 6 次 Bach 然后再播放 1 次 Mozart:

pygame.mixer.music.load('bach.ogg')
pygame.mixer.music.play(5)????????#?Plays?six?times,?not?five!
pygame.mixer.music.queue('mozart.ogg')
pygame.mixer.music.set_endevent()

當(dāng)播放結(jié)束時發(fā)出一個事件。

set_endevent() -> None

set_endevent(type) -> None

調(diào)用此函數(shù)會使 Pygame 在音樂結(jié)束播放后發(fā)出信號(通過事件隊列)。

type 參數(shù)決定了什么樣的事件將被放入事件隊列中。

任何時候音樂結(jié)束,都會放入指定事件到隊列中(不僅僅是第一次)。調(diào)用該函數(shù)并不帶任何參數(shù),表示停止投放事件到隊列中。

pygame.mixer.music.get_endevent()獲取播放結(jié)束時發(fā)送的事件。

get_endevent() -> type

返回音樂結(jié)束時被放入隊列的事件類型。

如果沒有指定 endevent 事件,此方法會返回 pygame.NOEVENT 。

15.pygame模塊

pygamePygame 最頂層的包。

函數(shù) & 屬性

  • pygame.init() ?— ?初始化所有導(dǎo)入的 pygame 模塊

  • pygame.quit() ?— ?卸載所有導(dǎo)入的 pygame 模塊

  • pygame.error() ?— ?標(biāo)準(zhǔn) pygame 異常模塊

  • pygame.get_error() ?— ?獲得當(dāng)前錯誤信息

  • pygame.set_error() ?— ?設(shè)置當(dāng)前錯誤信息

  • pygame.get_sdl_version() ?— ?獲得 SDL 的版本號

  • pygame.get_sdl_byteorder() ?— ?獲得 SDL 的字節(jié)順序

  • pygame.register_quit() ?— ?注冊一個函數(shù),這個函數(shù)將在 pygame 退出時被調(diào)用

  • pygame.encode_string() ?— ?對 unicode 或字節(jié)對象編碼

  • pygame.encode_file_path() ?— ?將 unicode 或字節(jié)對象編碼為文件系統(tǒng)路徑

  • pygame 包是可供使用的最頂層的包。Pygame 被分成許多子模塊,但是并不會影響程序使用 Pygame。

為了方便,在 pygame 中絕大多數(shù)的頂級變量被放入名為“pygame.locals”的模塊中。意思是說這些變量可通過以下方式導(dǎo)入:

import pygame from pygame.locals import * 當(dāng)你導(dǎo)入 pygame 后,所有可用的 pygame 子模塊都將自動被導(dǎo)入。需要注意的是,一些 pygame 模塊是“可選的”,并且可能無法使用。以防萬一,Pygame 將提供了一個占位符對象替代原來的模塊,這個對象可用來測試某些功能(變量)是否可用。

函數(shù) & 屬性詳解pygame.init()初始化所有導(dǎo)入的 pygame 模塊。

init() -> (numpass, numfail)

初始化所有導(dǎo)入的 pygame 模塊,如果有模塊導(dǎo)入失敗也不會顯示異常,但是將返回一個元組,第一個元素為成功導(dǎo)入的模塊數(shù),第二個元素為導(dǎo)入失敗的個數(shù)。

也許你想分開初始化不同的模塊,以提高你程序的運行速度,或者不加載暫時用不到的模塊。

重復(fù)調(diào)用 init() 方法是沒問題的,也不會有任何負(fù)面影響。即使你已經(jīng)調(diào)用了 pygame.quit() 卸載所有模塊也是可以的。

pygame.quit()卸載所有導(dǎo)入的 pygame 模塊。

quit() -> None

卸載所有之前被初始化的 pygame 模塊。當(dāng) python 解釋器關(guān)閉時,這個方法將被無條件地調(diào)用,所以你的程序并不需要調(diào)用這個方法,除非你想要終止 pygame 資源,并繼續(xù)執(zhí)行其他功能。多次執(zhí)行這個方法也是沒有問題的。

注意:調(diào)用這個方法 pygame.quit() 會結(jié)束所有模塊,但不會結(jié)束你的程序。建議用正常結(jié)束 python 程序的方法來結(jié)束 pygame 程序。

exception pygame.error標(biāo)準(zhǔn)的 pygame 異常。

raise pygame.error(message)

當(dāng) pygame 或 SDL 操作失敗時,將會引發(fā)異常。你可以捕獲任何可預(yù)見的問題并處理異常。報告異常時,會同時顯示問題的描述信息。

它是 RuntimeError 異常的子類,用于捕獲這些異常。

pygame.get_error()得到當(dāng)前錯誤信息。

get_error() -> errorstr

獲取 SDL 維護(hù)的一個內(nèi)部錯誤消息。當(dāng)標(biāo)準(zhǔn) pygame.error() 標(biāo)準(zhǔn) pygame 異常引發(fā)時,這些信息將會提供給你。

其實你很少會使用到這個方法的啦。

pygame.set_error()設(shè)置當(dāng)前錯誤信息。

set_error(error_msg) -> None

設(shè)置 SDL 維護(hù)的一個內(nèi)部錯誤消息。當(dāng)標(biāo)準(zhǔn) pygame.error() 標(biāo)準(zhǔn) pygame 異常引發(fā)時,這些信息將會提供給你。

其實你很少會使用到這個方法的啦。

pygame.get_sdl_version()獲得 SDL 的版本號。

get_sdl_version() -> major, minor, patch

返回 SDL 庫有關(guān)版本的 3 個數(shù)字。這個版本是在編譯時生成的。這個方法可用來得知哪個元件是不能正常使用的。

Pygame 1.7.0 新添加的方法。

pygame.get_sdl_byteorder()獲得 SDL 的字節(jié)順序。

get_sdl_byteorder() -> int

獲得 SDL 庫的字節(jié)順序。返回 LIL_ENDIAN 表示小端字節(jié)順序;返回 BIG_ENDIAN 表示大端字節(jié)順序。

Pygame 1.8 新添加的方法。

pygame.register_quit()注冊一個函數(shù),這個函數(shù)將在 pygame 退出時被調(diào)用。

register_quit(callable) -> None

當(dāng)調(diào)用 pygame.quit() 結(jié)束所有模塊時,所有通過 register_quit() 方法注冊過的函數(shù)將被調(diào)用。這一切都是自動執(zhí)行的。

一般的 pygame 用戶用不到這個方法。

pygame.encode_string()對 unicode 或字節(jié)對象進(jìn)行編碼。

encode_string([obj [, encoding [, errors [, etype]]]]) -> bytes or None

obj:

傳入 unicode 類型 -> 編碼 傳入 bytes 類型 -> 不變 傳入其他類型 -> 返回 None 沒有傳遞 obj 參數(shù) -> 引起 SyntaxError 異常 encoding (string):如果存在則進(jìn)行編碼,默認(rèn)是 unicode_escape。

errors (string):指定如何處理無法編碼的內(nèi)容,默認(rèn)使用反斜杠(\)代替。

etype (exception type):指定編碼錯誤引發(fā)的異常類型。默認(rèn)為 UnicodeEncodeError,由 PyUnicode_AsEncodedString() 返回。對于默認(rèn)的編碼和錯誤值不應(yīng)該有編碼錯誤。

這個函數(shù)被用于編碼文件路徑的時候,支持使用關(guān)鍵字參數(shù)。

Pygame 1.9.2 新增加的方法(主要用于單元測試)。

pygame.encode_file_path()將 unicode 或 bytes 對象編碼為文件系統(tǒng)路徑。

encode_file_path([obj [, etype]]) -> bytes or None

obj:

  • 傳入 unicode 類型 -> 編碼

  • 傳入 bytes 類型 -> 不變

  • 傳入其他類型 -> 返回 None

  • 沒有傳遞 obj 參數(shù) -> 引起 SyntaxError 異常 etype(異常類型):若給出,則出現(xiàn)異常時報相應(yīng)編碼錯誤,默認(rèn)為 UnicodeEncodeError,由 PyUnicode_AsEncodedString() 返回。

這個函數(shù)被用于編碼文件路徑的時候,結(jié)果由 sys.getfilesystemencoding() 返回,支持使用關(guān)鍵字參數(shù)。

參考文檔

  • Pygame官網(wǎng):https://www.pygame.org

  • Pygame的官網(wǎng)是有詳細(xì)的文檔的:https://www.pygame.org/docs/

  • pygame中文手冊pdf版本:https://yihang.cowtransfer.com/s/7b027011c9cd4a

——— / 往期精選?/ ————

后臺回復(fù)「進(jìn)群」可以加入我們的社群哦~

總結(jié)

以上是生活随笔為你收集整理的Python游戏工具包---Pygame最常用的15个模块详解(附pdf版本)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

欧美变态另类xxxx | 欧美国产日产一区二区 | 麻花豆传媒剧国产免费mv在线 | 久久99精品久久久久久 | 亚洲精品国产精品乱码视色 | 99精品久久毛片a片 | 特大黑人娇小亚洲女 | а√天堂www在线天堂小说 | 九月婷婷人人澡人人添人人爽 | 国产va免费精品观看 | 日韩在线不卡免费视频一区 | 精品成人av一区二区三区 | 国产乱人伦av在线无码 | 国产97人人超碰caoprom | 波多野结衣乳巨码无在线观看 | 欧美野外疯狂做受xxxx高潮 | 东京一本一道一二三区 | 无码人妻久久一区二区三区不卡 | 国产欧美精品一区二区三区 | 久久久精品成人免费观看 | 色综合久久久无码中文字幕 | 亚洲一区二区三区四区 | 亚洲国产欧美国产综合一区 | 欧美日韩人成综合在线播放 | 国产精品嫩草久久久久 | 亚洲欧洲无卡二区视頻 | 国产精品.xx视频.xxtv | 帮老师解开蕾丝奶罩吸乳网站 | 宝宝好涨水快流出来免费视频 | 少妇性荡欲午夜性开放视频剧场 | www国产亚洲精品久久久日本 | 久久综合色之久久综合 | 久久综合激激的五月天 | 亚洲精品鲁一鲁一区二区三区 | 日本丰满熟妇videos | 老熟妇乱子伦牲交视频 | 亚洲精品午夜国产va久久成人 | 欧美兽交xxxx×视频 | 在线视频网站www色 | 国产成人无码av片在线观看不卡 | 久9re热视频这里只有精品 | 97精品人妻一区二区三区香蕉 | 亚洲成av人在线观看网址 | 免费无码一区二区三区蜜桃大 | 亚洲欧美国产精品久久 | 丰满肥臀大屁股熟妇激情视频 | 亚洲中文字幕无码中文字在线 | 欧美人与禽zoz0性伦交 | 午夜精品一区二区三区在线观看 | 国产明星裸体无码xxxx视频 | 国产人妻精品一区二区三区不卡 | 免费人成网站视频在线观看 | 日日碰狠狠丁香久燥 | 精品国偷自产在线 | 欧美35页视频在线观看 | 精品久久8x国产免费观看 | 国产亚洲精品久久久闺蜜 | 无码任你躁久久久久久久 | 国产精品成人av在线观看 | 中文无码精品a∨在线观看不卡 | 久久人人97超碰a片精品 | 久久人人97超碰a片精品 | 精品偷拍一区二区三区在线看 | 欧美丰满熟妇xxxx性ppx人交 | 无码午夜成人1000部免费视频 | 精品熟女少妇av免费观看 | 无码国产色欲xxxxx视频 | 99久久精品日本一区二区免费 | 成 人 免费观看网站 | 成人精品视频一区二区三区尤物 | 黑森林福利视频导航 | 精品无码成人片一区二区98 | 伊人久久大香线蕉午夜 | 夜先锋av资源网站 | 樱花草在线播放免费中文 | 亚洲综合伊人久久大杳蕉 | 学生妹亚洲一区二区 | 少妇性荡欲午夜性开放视频剧场 | 国精产品一区二区三区 | 久久人人爽人人人人片 | 精品厕所偷拍各类美女tp嘘嘘 | 国产成人一区二区三区别 | 国产一区二区三区精品视频 | 99国产精品白浆在线观看免费 | 日本熟妇乱子伦xxxx | 野外少妇愉情中文字幕 | 国产后入清纯学生妹 | 国产亚av手机在线观看 | 亚洲国产精品美女久久久久 | 给我免费的视频在线观看 | 亚洲国产精品无码一区二区三区 | 国产偷抇久久精品a片69 | 婷婷色婷婷开心五月四房播播 | 无码人妻少妇伦在线电影 | 日韩精品久久久肉伦网站 | 无码毛片视频一区二区本码 | 精品欧洲av无码一区二区三区 | 大地资源网第二页免费观看 | 成熟女人特级毛片www免费 | 特级做a爰片毛片免费69 | 欧美人与牲动交xxxx | 中文字幕无码日韩欧毛 | 亚洲春色在线视频 | 欧美人与牲动交xxxx | 国产精品嫩草久久久久 | 国产精品多人p群无码 | 少妇被粗大的猛进出69影院 | 色婷婷av一区二区三区之红樱桃 | 特大黑人娇小亚洲女 | 成人性做爰aaa片免费看不忠 | 免费观看激色视频网站 | 久久国语露脸国产精品电影 | 真人与拘做受免费视频一 | 亚洲色欲色欲天天天www | 久久久久亚洲精品男人的天堂 | 国产 浪潮av性色四虎 | 日本精品少妇一区二区三区 | 捆绑白丝粉色jk震动捧喷白浆 | 欧美丰满老熟妇xxxxx性 | 奇米影视7777久久精品人人爽 | 欧美精品免费观看二区 | 性做久久久久久久久 | 午夜无码人妻av大片色欲 | 99视频精品全部免费免费观看 | 久久久久亚洲精品中文字幕 | 中文字幕 亚洲精品 第1页 | 亚洲区欧美区综合区自拍区 | 国产精品亚洲一区二区三区喷水 | 中文字幕无码日韩专区 | 丰满岳乱妇在线观看中字无码 | 无码国产激情在线观看 | 成年女人永久免费看片 | 人妻少妇精品视频专区 | 天天躁日日躁狠狠躁免费麻豆 | 欧美日本精品一区二区三区 | 色婷婷综合激情综在线播放 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲色偷偷男人的天堂 | 精品无码成人片一区二区98 | 亚洲欧美国产精品专区久久 | 久久人人97超碰a片精品 | 亚洲中文字幕久久无码 | 国产卡一卡二卡三 | 在线播放亚洲第一字幕 | 少妇被黑人到高潮喷出白浆 | 日韩精品成人一区二区三区 | 亚洲 高清 成人 动漫 | 中文无码成人免费视频在线观看 | 熟妇女人妻丰满少妇中文字幕 | 国产精品手机免费 | 噜噜噜亚洲色成人网站 | 国产精品无码mv在线观看 | 久久www免费人成人片 | 日本xxxx色视频在线观看免费 | 亚洲国产午夜精品理论片 | 精品 日韩 国产 欧美 视频 | 激情国产av做激情国产爱 | 天海翼激烈高潮到腰振不止 | 国产成人精品必看 | 欧美freesex黑人又粗又大 | 成人片黄网站色大片免费观看 | 成人一在线视频日韩国产 | 中文字幕无码视频专区 | 学生妹亚洲一区二区 | 欧美一区二区三区视频在线观看 | 色狠狠av一区二区三区 | 玩弄少妇高潮ⅹxxxyw | 捆绑白丝粉色jk震动捧喷白浆 | 欧美xxxxx精品 | 大地资源网第二页免费观看 | 日韩精品一区二区av在线 | 中文字幕无线码 | 亚洲一区二区观看播放 | 天天综合网天天综合色 | 国产成人精品无码播放 | 精品国产精品久久一区免费式 | 人妻互换免费中文字幕 | 少妇无码吹潮 | 久久人妻内射无码一区三区 | 国产精品沙发午睡系列 | 夜夜影院未满十八勿进 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 岛国片人妻三上悠亚 | 久久无码人妻影院 | 日产精品99久久久久久 | 国产成人精品必看 | 天天做天天爱天天爽综合网 | 亚洲精品久久久久avwww潮水 | 日欧一片内射va在线影院 | 野外少妇愉情中文字幕 | 久久五月精品中文字幕 | 在教室伦流澡到高潮hnp视频 | 国产无遮挡又黄又爽免费视频 | 久久精品99久久香蕉国产色戒 | 亚洲人成影院在线观看 | 亚洲娇小与黑人巨大交 | 欧美人妻一区二区三区 | 久久成人a毛片免费观看网站 | 天天爽夜夜爽夜夜爽 | 77777熟女视频在线观看 а天堂中文在线官网 | 国内揄拍国内精品少妇国语 | 国产亚洲日韩欧美另类第八页 | 国产精品久久久午夜夜伦鲁鲁 | 丰满少妇熟乱xxxxx视频 | 国产亚洲精品久久久久久 | 99久久精品国产一区二区蜜芽 | 精品久久久中文字幕人妻 | 国产偷国产偷精品高清尤物 | a在线观看免费网站大全 | 午夜福利一区二区三区在线观看 | 秋霞特色aa大片 | 国产成人精品优优av | 亚洲国产欧美日韩精品一区二区三区 | 久久综合九色综合欧美狠狠 | 久久久久亚洲精品中文字幕 | 中文字幕乱码人妻无码久久 | 欧美精品无码一区二区三区 | 女人被男人爽到呻吟的视频 | 成人综合网亚洲伊人 | 午夜熟女插插xx免费视频 | 亚洲日韩av一区二区三区四区 | 精品无码av一区二区三区 | 国产激情无码一区二区app | 成人欧美一区二区三区 | 国产凸凹视频一区二区 | 国产三级精品三级男人的天堂 | 国内老熟妇对白xxxxhd | 伊人久久大香线焦av综合影院 | 久久成人a毛片免费观看网站 | 装睡被陌生人摸出水好爽 | 婷婷综合久久中文字幕蜜桃三电影 | 东京热一精品无码av | 国产婷婷色一区二区三区在线 | 久久成人a毛片免费观看网站 | 大肉大捧一进一出视频出来呀 | 日本大香伊一区二区三区 | 牲欲强的熟妇农村老妇女视频 | 亚洲日韩精品欧美一区二区 | 国产口爆吞精在线视频 | 国产成人一区二区三区别 | 久热国产vs视频在线观看 | 国产真实乱对白精彩久久 | 狠狠综合久久久久综合网 | а√资源新版在线天堂 | 国产午夜精品一区二区三区嫩草 | 波多野结衣高清一区二区三区 | 搡女人真爽免费视频大全 | 国产av一区二区三区最新精品 | 无码av免费一区二区三区试看 | 久久婷婷五月综合色国产香蕉 | 国产精品丝袜黑色高跟鞋 | 中文字幕久久久久人妻 | 国内精品久久毛片一区二区 | 九九综合va免费看 | 熟女少妇人妻中文字幕 | 人妻无码久久精品人妻 | 亚洲国产成人av在线观看 | 欧美老熟妇乱xxxxx | 日韩亚洲欧美中文高清在线 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲一区二区三区国产精华液 | 中文字幕中文有码在线 | 色 综合 欧美 亚洲 国产 | 精品成人av一区二区三区 | 图片区 小说区 区 亚洲五月 | 亚洲精品久久久久avwww潮水 | 2020久久香蕉国产线看观看 | 日韩亚洲欧美精品综合 | 亚洲aⅴ无码成人网站国产app | 久久精品国产99精品亚洲 | 国产精品美女久久久网av | 午夜精品一区二区三区在线观看 | 日本熟妇大屁股人妻 | 中文字幕乱码亚洲无线三区 | 黑人巨大精品欧美黑寡妇 | 日日碰狠狠丁香久燥 | 狂野欧美性猛交免费视频 | 成人三级无码视频在线观看 | 2020久久香蕉国产线看观看 | 中文字幕人成乱码熟女app | www国产亚洲精品久久久日本 | 九九综合va免费看 | 国产亚洲精品精品国产亚洲综合 | 中文字幕av伊人av无码av | 国产精品久久久久7777 | 亚洲国产精品毛片av不卡在线 | 狂野欧美性猛交免费视频 | 无套内射视频囯产 | 国产乱码精品一品二品 | 2020久久超碰国产精品最新 | 日日鲁鲁鲁夜夜爽爽狠狠 | 国产一区二区三区精品视频 | 国产猛烈高潮尖叫视频免费 | 久久人人爽人人人人片 | 无套内射视频囯产 | 精品国精品国产自在久国产87 | 国产特级毛片aaaaaa高潮流水 | 欧美色就是色 | 蜜桃无码一区二区三区 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 人人妻人人藻人人爽欧美一区 | 日本精品人妻无码免费大全 | 国产精品理论片在线观看 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产精品理论片在线观看 | 玩弄少妇高潮ⅹxxxyw | 亚欧洲精品在线视频免费观看 | 亚洲最大成人网站 | 乱人伦中文视频在线观看 | 国产精品无码成人午夜电影 | 少妇被黑人到高潮喷出白浆 | 午夜免费福利小电影 | 国产精品办公室沙发 | 亚洲小说图区综合在线 | 久久久久成人片免费观看蜜芽 | 草草网站影院白丝内射 | 免费无码一区二区三区蜜桃大 | 天堂无码人妻精品一区二区三区 | ass日本丰满熟妇pics | 亚洲va欧美va天堂v国产综合 | 99久久人妻精品免费二区 | 丰满人妻翻云覆雨呻吟视频 | 日日夜夜撸啊撸 | 疯狂三人交性欧美 | 精品偷拍一区二区三区在线看 | 狠狠色欧美亚洲狠狠色www | 日日天干夜夜狠狠爱 | 亚洲欧美综合区丁香五月小说 | аⅴ资源天堂资源库在线 | 日韩人妻无码中文字幕视频 | 亚洲精品一区二区三区大桥未久 | 水蜜桃亚洲一二三四在线 | 啦啦啦www在线观看免费视频 | 日韩精品久久久肉伦网站 | 亚洲欧美综合区丁香五月小说 | 俺去俺来也在线www色官网 | 亚洲欧美国产精品专区久久 | 国产香蕉97碰碰久久人人 | 国产精品永久免费视频 | 亚洲人成人无码网www国产 | 亚洲成av人片在线观看无码不卡 | 国产在线一区二区三区四区五区 | 欧美国产亚洲日韩在线二区 | 99久久人妻精品免费一区 | 色一情一乱一伦一区二区三欧美 | 亚洲第一网站男人都懂 | 国产猛烈高潮尖叫视频免费 | 久久精品国产一区二区三区肥胖 | 亚洲色欲色欲天天天www | 无码av免费一区二区三区试看 | 偷窥日本少妇撒尿chinese | 色爱情人网站 | 亚洲自偷精品视频自拍 | 内射后入在线观看一区 | 国产一区二区三区日韩精品 | 特大黑人娇小亚洲女 | 一本大道伊人av久久综合 | 欧美日韩在线亚洲综合国产人 | 少妇无码吹潮 | 免费男性肉肉影院 | 亚洲国产精品美女久久久久 | 久久国语露脸国产精品电影 | 奇米影视888欧美在线观看 | 精品厕所偷拍各类美女tp嘘嘘 | 久久久久亚洲精品中文字幕 | 国产精品永久免费视频 | 日韩精品无码免费一区二区三区 | 成人无码精品1区2区3区免费看 | 久久99精品国产麻豆蜜芽 | 99久久精品国产一区二区蜜芽 | 无套内谢老熟女 | 精品成人av一区二区三区 | 国产精品久久久久9999小说 | 丰满人妻一区二区三区免费视频 | 日韩精品无码一本二本三本色 | 欧美怡红院免费全部视频 | 国产内射爽爽大片视频社区在线 | 色一情一乱一伦一视频免费看 | 中文无码成人免费视频在线观看 | 国产精品无码永久免费888 | 国产亚洲精品久久久ai换 | 无码帝国www无码专区色综合 | www成人国产高清内射 | 爱做久久久久久 | 3d动漫精品啪啪一区二区中 | 天天摸天天透天天添 | 无码国内精品人妻少妇 | 丰满少妇女裸体bbw | 搡女人真爽免费视频大全 | 欧美国产日韩久久mv | 日韩在线不卡免费视频一区 | 精品少妇爆乳无码av无码专区 | 亚洲人成网站在线播放942 | 亚拍精品一区二区三区探花 | 日日躁夜夜躁狠狠躁 | 日本精品人妻无码免费大全 | 激情亚洲一区国产精品 | 国产人妻精品一区二区三区 | 久久久久av无码免费网 | 亚洲色www成人永久网址 | 无码人妻丰满熟妇区毛片18 | 国产成人一区二区三区别 | 午夜嘿嘿嘿影院 | 激情人妻另类人妻伦 | 午夜精品久久久久久久久 | 狠狠综合久久久久综合网 | 成人无码视频在线观看网站 | v一区无码内射国产 | 国精品人妻无码一区二区三区蜜柚 | 天堂在线观看www | 国产人成高清在线视频99最全资源 | 福利一区二区三区视频在线观看 | 狂野欧美性猛交免费视频 | 精品偷拍一区二区三区在线看 | 国产午夜福利100集发布 | 中文字幕乱码中文乱码51精品 | 欧美人与牲动交xxxx | 377p欧洲日本亚洲大胆 | 人妻无码久久精品人妻 | 色婷婷av一区二区三区之红樱桃 | 成年美女黄网站色大免费视频 | 欧美日韩人成综合在线播放 | 少妇性l交大片欧洲热妇乱xxx | 久久国产精品精品国产色婷婷 | 蜜臀av在线播放 久久综合激激的五月天 | 夜夜夜高潮夜夜爽夜夜爰爰 | 精品一区二区不卡无码av | 青青青爽视频在线观看 | 久久国产劲爆∧v内射 | 无码人妻久久一区二区三区不卡 | 亚洲国精产品一二二线 | 无码国内精品人妻少妇 | 亚洲欧美日韩成人高清在线一区 | 六月丁香婷婷色狠狠久久 | 亚洲欧美日韩国产精品一区二区 | 国产午夜视频在线观看 | 激情内射亚州一区二区三区爱妻 | 亚洲国产高清在线观看视频 | 国产美女精品一区二区三区 | 欧美 丝袜 自拍 制服 另类 | 久久国产精品_国产精品 | 小sao货水好多真紧h无码视频 | 国产一区二区三区四区五区加勒比 | 国产成人人人97超碰超爽8 | 亚洲午夜久久久影院 | 亚欧洲精品在线视频免费观看 | 亚洲中文字幕va福利 | 亚洲一区二区三区国产精华液 | 三上悠亚人妻中文字幕在线 | 一本精品99久久精品77 | 久久伊人色av天堂九九小黄鸭 | 国产女主播喷水视频在线观看 | 大屁股大乳丰满人妻 | 国产午夜无码精品免费看 | 亚洲熟妇色xxxxx欧美老妇 | 亚洲色欲久久久综合网东京热 | av香港经典三级级 在线 | 两性色午夜视频免费播放 | 国产精品久久久久7777 | 精品厕所偷拍各类美女tp嘘嘘 | 国产激情艳情在线看视频 | 精品一区二区不卡无码av | 最近的中文字幕在线看视频 | 高中生自慰www网站 | 成年美女黄网站色大免费全看 | 久久精品99久久香蕉国产色戒 | 自拍偷自拍亚洲精品被多人伦好爽 | 久久久久成人精品免费播放动漫 | 国产精品久久国产精品99 | 男女爱爱好爽视频免费看 | 欧美肥老太牲交大战 | 久久天天躁夜夜躁狠狠 | 亚洲成a人片在线观看无码3d | 国产suv精品一区二区五 | 99精品久久毛片a片 | 国产色精品久久人妻 | 无码人妻少妇伦在线电影 | 中文字幕日韩精品一区二区三区 | 亚洲熟熟妇xxxx | 精品国偷自产在线视频 | 18无码粉嫩小泬无套在线观看 | 中国女人内谢69xxxxxa片 | 亚洲国产精品一区二区第一页 | 欧美国产日韩久久mv | 亚洲 a v无 码免 费 成 人 a v | 国产三级久久久精品麻豆三级 | 中文精品久久久久人妻不卡 | 日本一区二区三区免费播放 | 丰满少妇熟乱xxxxx视频 | 亚洲一区二区三区无码久久 | 丰满少妇人妻久久久久久 | 人人妻人人澡人人爽欧美精品 | 一区二区传媒有限公司 | 人人妻人人澡人人爽人人精品浪潮 | 午夜嘿嘿嘿影院 | 六十路熟妇乱子伦 | 国内揄拍国内精品人妻 | 中文字幕人妻无码一夲道 | 日本乱人伦片中文三区 | 亚洲欧美精品aaaaaa片 | 夫妻免费无码v看片 | 亚洲成av人影院在线观看 | 国产成人综合在线女婷五月99播放 | 国产色视频一区二区三区 | 欧美日本免费一区二区三区 | 久久久久久国产精品无码下载 | 亚洲中文字幕在线无码一区二区 | 天天做天天爱天天爽综合网 | 国产在线精品一区二区高清不卡 | 丁香花在线影院观看在线播放 | 无码国产色欲xxxxx视频 | 色综合久久88色综合天天 | 亚洲国产午夜精品理论片 | 色综合久久中文娱乐网 | 岛国片人妻三上悠亚 | 国产无遮挡又黄又爽免费视频 | 人人爽人人爽人人片av亚洲 | 国产精品欧美成人 | 国产一区二区三区日韩精品 | 国产真人无遮挡作爱免费视频 | 久久久久亚洲精品男人的天堂 | 国产超碰人人爽人人做人人添 | 亚洲国产午夜精品理论片 | 国产精品久久国产三级国 | 久久午夜夜伦鲁鲁片无码免费 | 国产精品内射视频免费 | 久久精品视频在线看15 | www一区二区www免费 | 欧美精品免费观看二区 | 国精产品一品二品国精品69xx | 男人和女人高潮免费网站 | 亚洲最大成人网站 | 成人动漫在线观看 | 亚洲国产精华液网站w | 在教室伦流澡到高潮hnp视频 | 亚洲自偷精品视频自拍 | 国产精品18久久久久久麻辣 | 精品人妻av区 | 动漫av网站免费观看 | 欧美 日韩 人妻 高清 中文 | 中文字幕乱码人妻二区三区 | 免费人成在线视频无码 | 1000部啪啪未满十八勿入下载 | 麻豆国产丝袜白领秘书在线观看 | 人妻与老人中文字幕 | 曰本女人与公拘交酡免费视频 | 亚洲精品久久久久avwww潮水 | 全黄性性激高免费视频 | 人妻少妇精品视频专区 | 久久99精品国产.久久久久 | 波多野结衣一区二区三区av免费 | 亚洲欧洲中文日韩av乱码 | 人人妻人人澡人人爽人人精品 | 国产在线精品一区二区三区直播 | 中文字幕+乱码+中文字幕一区 | 人妻有码中文字幕在线 | 奇米影视888欧美在线观看 | 在线 国产 欧美 亚洲 天堂 | 精品国产一区二区三区四区 | 国产精品久久国产三级国 | 国产无套内射久久久国产 | 人妻少妇精品无码专区二区 | 激情国产av做激情国产爱 | 亚洲爆乳大丰满无码专区 | 扒开双腿吃奶呻吟做受视频 | 婷婷综合久久中文字幕蜜桃三电影 | 国产精品a成v人在线播放 | 日韩欧美中文字幕在线三区 | 麻豆国产人妻欲求不满谁演的 | 国产97人人超碰caoprom | 男女作爱免费网站 | 国产99久久精品一区二区 | 99视频精品全部免费免费观看 | 色欲av亚洲一区无码少妇 | 亚洲成a人一区二区三区 | 日本护士xxxxhd少妇 | 麻豆精品国产精华精华液好用吗 | 草草网站影院白丝内射 | 国产亚洲精品久久久久久国模美 | 国语自产偷拍精品视频偷 | 好男人www社区 | 亚洲熟妇色xxxxx欧美老妇 | 午夜精品一区二区三区的区别 | 高中生自慰www网站 | 天天躁夜夜躁狠狠是什么心态 | 国产情侣作爱视频免费观看 | 久久伊人色av天堂九九小黄鸭 | 亚洲中文字幕无码一久久区 | 人人妻人人澡人人爽欧美一区九九 | 中文亚洲成a人片在线观看 | 午夜福利不卡在线视频 | 国产日产欧产精品精品app | 日日天日日夜日日摸 | 国产一区二区三区精品视频 | 中文字幕人成乱码熟女app | 国产精品99爱免费视频 | 婷婷色婷婷开心五月四房播播 | 99久久精品午夜一区二区 | 久久99精品久久久久久 | 熟妇激情内射com | 精品国产一区av天美传媒 | 亚洲成在人网站无码天堂 | 正在播放老肥熟妇露脸 | 国产在线aaa片一区二区99 | 天天摸天天碰天天添 | 秋霞成人午夜鲁丝一区二区三区 | 熟妇女人妻丰满少妇中文字幕 | 久久久久se色偷偷亚洲精品av | 99国产欧美久久久精品 | 日产精品高潮呻吟av久久 | 亚洲精品成人福利网站 | 男女作爱免费网站 | 国产精品美女久久久久av爽李琼 | 国产美女极度色诱视频www | 东京一本一道一二三区 | 丰满妇女强制高潮18xxxx | 东京热男人av天堂 | 日韩精品无码一本二本三本色 | 欧美成人免费全部网站 | 老子影院午夜精品无码 | 又粗又大又硬又长又爽 | 丰满护士巨好爽好大乳 | 久久婷婷五月综合色国产香蕉 | 一个人看的视频www在线 | 亚洲va中文字幕无码久久不卡 | 日本大乳高潮视频在线观看 | 超碰97人人做人人爱少妇 | 97夜夜澡人人双人人人喊 | 午夜精品久久久内射近拍高清 | 成人女人看片免费视频放人 | 中文字幕人成乱码熟女app | 亚洲欧美中文字幕5发布 | 日本成熟视频免费视频 | 国产激情综合五月久久 | 又大又黄又粗又爽的免费视频 | 无码人妻丰满熟妇区五十路百度 | 日韩精品无码免费一区二区三区 | 国产97人人超碰caoprom | 无码人妻久久一区二区三区不卡 | 天天拍夜夜添久久精品 | 真人与拘做受免费视频 | 国产激情一区二区三区 | 国产亚洲日韩欧美另类第八页 | 国产肉丝袜在线观看 | 欧美丰满老熟妇xxxxx性 | 老太婆性杂交欧美肥老太 | 久久综合给合久久狠狠狠97色 | 无码人妻出轨黑人中文字幕 | 亚洲精品国产第一综合99久久 | 国产特级毛片aaaaaaa高清 | 成年美女黄网站色大免费视频 | 久久99精品久久久久久动态图 | 小鲜肉自慰网站xnxx | 丝袜足控一区二区三区 | 人妻少妇精品久久 | 日本高清一区免费中文视频 | 亚洲成熟女人毛毛耸耸多 | 色婷婷综合激情综在线播放 | 成人片黄网站色大片免费观看 | 日韩成人一区二区三区在线观看 | 亚洲s码欧洲m码国产av | а√天堂www在线天堂小说 | 久久国产精品_国产精品 | 色综合久久中文娱乐网 | 日韩人妻无码中文字幕视频 | 装睡被陌生人摸出水好爽 | 国产网红无码精品视频 | 麻豆md0077饥渴少妇 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 秋霞成人午夜鲁丝一区二区三区 | 岛国片人妻三上悠亚 | 国产sm调教视频在线观看 | 无遮挡国产高潮视频免费观看 | 日韩少妇内射免费播放 | 久久久久免费看成人影片 | 午夜免费福利小电影 | 最新国产麻豆aⅴ精品无码 | 久久视频在线观看精品 | 久久久久久久久蜜桃 | 久久亚洲a片com人成 | 双乳奶水饱满少妇呻吟 | 国产精品久久久久久亚洲影视内衣 | 欧美日韩综合一区二区三区 | 亚洲色欲久久久综合网东京热 | a在线亚洲男人的天堂 | 国内精品久久久久久中文字幕 | 青草青草久热国产精品 | 中文字幕人妻无码一夲道 | 曰韩无码二三区中文字幕 | 亚洲成a人片在线观看无码 | 午夜精品一区二区三区的区别 | 国产真实乱对白精彩久久 | 永久免费观看国产裸体美女 | 国内老熟妇对白xxxxhd | 亚洲一区二区三区播放 | 老子影院午夜伦不卡 | 人人超人人超碰超国产 | 午夜福利一区二区三区在线观看 | 国产亚洲精品久久久久久久 | 中文字幕日产无线码一区 | 中文字幕精品av一区二区五区 | 成人欧美一区二区三区 | 伊人久久婷婷五月综合97色 | 成年女人永久免费看片 | 午夜免费福利小电影 | 黑人粗大猛烈进出高潮视频 | 大肉大捧一进一出好爽视频 | 黑森林福利视频导航 | 国产精品人人爽人人做我的可爱 | 樱花草在线播放免费中文 | 亚洲无人区一区二区三区 | 4hu四虎永久在线观看 | 99精品国产综合久久久久五月天 | 亚洲欧美国产精品专区久久 | 正在播放老肥熟妇露脸 | 在线观看免费人成视频 | 99久久人妻精品免费二区 | 天天爽夜夜爽夜夜爽 | 麻豆国产人妻欲求不满谁演的 | 日本精品久久久久中文字幕 | 国产精品办公室沙发 | 国产成人一区二区三区在线观看 | 亚洲中文字幕在线观看 | 免费观看黄网站 | 无码av免费一区二区三区试看 | 国产乱子伦视频在线播放 | 女人被男人躁得好爽免费视频 | 国内少妇偷人精品视频 | 色综合久久久久综合一本到桃花网 | 国产精品第一国产精品 | 午夜精品久久久久久久 | 国产艳妇av在线观看果冻传媒 | 久久这里只有精品视频9 | 丰满少妇高潮惨叫视频 | 欧美午夜特黄aaaaaa片 | 欧美精品在线观看 | 综合网日日天干夜夜久久 | 丰满妇女强制高潮18xxxx | 精品无码成人片一区二区98 | 久久综合狠狠综合久久综合88 | 内射白嫩少妇超碰 | 中文毛片无遮挡高清免费 | 国产色在线 | 国产 | 给我免费的视频在线观看 | 又大又硬又爽免费视频 | 日日橹狠狠爱欧美视频 | 亚洲第一无码av无码专区 | 亚洲中文字幕无码中字 | 亚洲色无码一区二区三区 | 无码吃奶揉捏奶头高潮视频 | 欧美丰满少妇xxxx性 | 亚洲啪av永久无码精品放毛片 | 久久久久免费看成人影片 | 高潮毛片无遮挡高清免费 | 久久无码专区国产精品s | 久久伊人色av天堂九九小黄鸭 | 日日摸夜夜摸狠狠摸婷婷 | 色偷偷人人澡人人爽人人模 | 四虎永久在线精品免费网址 | 漂亮人妻洗澡被公强 日日躁 | 欧美精品国产综合久久 | 国产97人人超碰caoprom | 日韩精品无码一区二区中文字幕 | 女人高潮内射99精品 | 国产成人精品一区二区在线小狼 | 国产热a欧美热a在线视频 | 内射欧美老妇wbb | 图片小说视频一区二区 | 成人精品视频一区二区 | 亚洲国产精品一区二区美利坚 | 国产无遮挡又黄又爽免费视频 | 88国产精品欧美一区二区三区 | 午夜无码人妻av大片色欲 | 18禁黄网站男男禁片免费观看 | 曰韩无码二三区中文字幕 | 377p欧洲日本亚洲大胆 | 久久99国产综合精品 | 秋霞成人午夜鲁丝一区二区三区 | 十八禁真人啪啪免费网站 | 国产精品久久久久久久9999 | 天天摸天天碰天天添 | 国产超级va在线观看视频 | 无码人妻丰满熟妇区五十路百度 | 成人无码视频免费播放 | 国产精品永久免费视频 | 波多野结衣乳巨码无在线观看 | 伊人久久婷婷五月综合97色 | 无码av免费一区二区三区试看 | 巨爆乳无码视频在线观看 | 欧美 日韩 人妻 高清 中文 | 午夜不卡av免费 一本久久a久久精品vr综合 | 色欲久久久天天天综合网精品 | 樱花草在线社区www | 色欲综合久久中文字幕网 | 无码人妻丰满熟妇区五十路百度 | 夜夜夜高潮夜夜爽夜夜爰爰 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 老太婆性杂交欧美肥老太 | 欧美日韩一区二区免费视频 | 人人妻人人澡人人爽人人精品 | 成人无码精品1区2区3区免费看 | 一本久久伊人热热精品中文字幕 | 国产乱人偷精品人妻a片 | 天天摸天天透天天添 | 久久久久se色偷偷亚洲精品av | 麻豆精品国产精华精华液好用吗 | 自拍偷自拍亚洲精品被多人伦好爽 | 日日摸天天摸爽爽狠狠97 | 狠狠cao日日穞夜夜穞av | 国产在线精品一区二区高清不卡 | 国产精品久久国产精品99 | 精品国产国产综合精品 | 色狠狠av一区二区三区 | 妺妺窝人体色www在线小说 | 狠狠色丁香久久婷婷综合五月 | 国产精品高潮呻吟av久久 | 人妻少妇精品无码专区二区 | 精品一区二区三区波多野结衣 | 欧美真人作爱免费视频 | 日韩欧美群交p片內射中文 | 亚洲综合精品香蕉久久网 | 人人妻人人藻人人爽欧美一区 | 亚洲精品国产精品乱码不卡 | 初尝人妻少妇中文字幕 | 欧美黑人巨大xxxxx | 人妻互换免费中文字幕 | 狠狠躁日日躁夜夜躁2020 | a片在线免费观看 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 亚洲国产一区二区三区在线观看 | 日本一卡二卡不卡视频查询 | 国产成人无码专区 | 一本无码人妻在中文字幕免费 | 国产亚洲精品久久久ai换 | 最近中文2019字幕第二页 | 最近的中文字幕在线看视频 | 国产人妻人伦精品 | 欧美一区二区三区视频在线观看 | 久久精品中文字幕一区 | 久久久久久久女国产乱让韩 | 丝袜足控一区二区三区 | 无遮无挡爽爽免费视频 | 国产97人人超碰caoprom | 国产av一区二区精品久久凹凸 | 无码人妻黑人中文字幕 | 中文无码成人免费视频在线观看 | 亚洲日韩av一区二区三区四区 | 97夜夜澡人人爽人人喊中国片 | 亚洲色无码一区二区三区 | 午夜福利一区二区三区在线观看 | 国产精品高潮呻吟av久久 | 香港三级日本三级妇三级 | 久久综合九色综合97网 | 亚洲人成影院在线观看 | 国产成人精品三级麻豆 | 亚洲欧美国产精品专区久久 | 蜜桃无码一区二区三区 | 精品国产aⅴ无码一区二区 | 影音先锋中文字幕无码 | 爱做久久久久久 | 国产成人一区二区三区在线观看 | 扒开双腿疯狂进出爽爽爽视频 | 无套内谢老熟女 | 成人无码视频免费播放 | 久久天天躁夜夜躁狠狠 | 7777奇米四色成人眼影 | 在线亚洲高清揄拍自拍一品区 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 亚洲精品久久久久avwww潮水 | 乱码av麻豆丝袜熟女系列 | 一本色道久久综合亚洲精品不卡 | 精品一区二区三区波多野结衣 | 精品人人妻人人澡人人爽人人 | 色综合久久久久综合一本到桃花网 | 美女黄网站人色视频免费国产 | 精品国产一区二区三区四区在线看 | 亚洲日韩av一区二区三区中文 | 中文字幕乱码亚洲无线三区 | 欧美黑人性暴力猛交喷水 | 国产精品亚洲а∨无码播放麻豆 | 国产成人无码专区 | 窝窝午夜理论片影院 | 人妻人人添人妻人人爱 | 亚洲精品一区二区三区大桥未久 | 动漫av一区二区在线观看 | aa片在线观看视频在线播放 | 亚洲无人区午夜福利码高清完整版 | 野外少妇愉情中文字幕 | 久久国产精品偷任你爽任你 | 亚洲va中文字幕无码久久不卡 | 性欧美videos高清精品 | 亚洲国产精品一区二区第一页 | 老司机亚洲精品影院 | 国产黑色丝袜在线播放 | 亚洲国产精品成人久久蜜臀 | 国产精品高潮呻吟av久久4虎 | 国产香蕉尹人视频在线 | 国产麻豆精品精东影业av网站 | 国产免费无码一区二区视频 | 六十路熟妇乱子伦 | 一本色道久久综合狠狠躁 | 国产艳妇av在线观看果冻传媒 | 欧美一区二区三区 | 国产欧美精品一区二区三区 | 成人免费视频一区二区 | 无码av中文字幕免费放 | a片免费视频在线观看 | 2020久久香蕉国产线看观看 | 青草视频在线播放 | 奇米影视888欧美在线观看 | 性生交片免费无码看人 | 日韩少妇白浆无码系列 | 国产无av码在线观看 | 麻豆av传媒蜜桃天美传媒 | 国产一区二区三区日韩精品 | √天堂资源地址中文在线 | 男人和女人高潮免费网站 | 色五月丁香五月综合五月 | 无码午夜成人1000部免费视频 | 色婷婷av一区二区三区之红樱桃 | 人妻互换免费中文字幕 | 天堂а√在线中文在线 | 国产精品久久久一区二区三区 | 中文亚洲成a人片在线观看 | 美女张开腿让人桶 | 在线观看欧美一区二区三区 | 成人免费视频在线观看 | 激情综合激情五月俺也去 | 中文字幕色婷婷在线视频 | 麻豆国产人妻欲求不满 | 国产午夜福利100集发布 | 国产成人无码a区在线观看视频app | 国产suv精品一区二区五 | 亚洲の无码国产の无码影院 | 国产亚洲美女精品久久久2020 | 国产午夜无码精品免费看 | 娇妻被黑人粗大高潮白浆 | 国产亲子乱弄免费视频 | 日本精品人妻无码77777 天堂一区人妻无码 | 思思久久99热只有频精品66 | 东京热一精品无码av | 日日干夜夜干 | 久久亚洲国产成人精品性色 | 欧美怡红院免费全部视频 | 国产精品亚洲专区无码不卡 | 两性色午夜免费视频 | 捆绑白丝粉色jk震动捧喷白浆 | 99久久久无码国产aaa精品 | 99精品国产综合久久久久五月天 | 精品一二三区久久aaa片 | 一本久久a久久精品vr综合 | 日本成熟视频免费视频 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 亲嘴扒胸摸屁股激烈网站 | 久久久中文久久久无码 | www国产亚洲精品久久久日本 | 波多野结衣av一区二区全免费观看 | 无人区乱码一区二区三区 | 国产小呦泬泬99精品 | 国产亚av手机在线观看 | 偷窥村妇洗澡毛毛多 | 国产成人综合在线女婷五月99播放 | 窝窝午夜理论片影院 | 国产又爽又猛又粗的视频a片 | 性色欲情网站iwww九文堂 | 无码国模国产在线观看 | 成年美女黄网站色大免费全看 | 国产成人亚洲综合无码 | 亚洲国产高清在线观看视频 | 无码精品国产va在线观看dvd | 精品少妇爆乳无码av无码专区 | 55夜色66夜色国产精品视频 | 日日麻批免费40分钟无码 | 在线播放亚洲第一字幕 | 97精品人妻一区二区三区香蕉 | 波多野结衣av在线观看 | 色综合久久久久综合一本到桃花网 | 高潮毛片无遮挡高清免费 | 中文字幕乱码人妻无码久久 | 国产一区二区三区精品视频 | www国产亚洲精品久久久日本 | 精品成人av一区二区三区 | 波多野结衣aⅴ在线 | 久久成人a毛片免费观看网站 | 国产麻豆精品一区二区三区v视界 | 国产乱人伦av在线无码 | 亚洲国产精品久久久久久 | 狠狠噜狠狠狠狠丁香五月 | 小鲜肉自慰网站xnxx | 国产激情无码一区二区 | 妺妺窝人体色www婷婷 | 精品国产一区av天美传媒 | 少妇人妻av毛片在线看 | 国产成人av免费观看 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 人妻无码久久精品人妻 | 国产精品亚洲综合色区韩国 | 亚洲人成影院在线观看 | 7777奇米四色成人眼影 | 伊人色综合久久天天小片 | 亚洲人成无码网www | 老熟女重囗味hdxx69 | 国产人妻精品一区二区三区不卡 | 国产精品va在线播放 | 婷婷色婷婷开心五月四房播播 | av无码久久久久不卡免费网站 | 少女韩国电视剧在线观看完整 | 无码av中文字幕免费放 | www国产精品内射老师 | 中文字幕人妻无码一区二区三区 | 老熟女重囗味hdxx69 | 无套内谢老熟女 | 免费无码一区二区三区蜜桃大 | 久久久成人毛片无码 | 国产成人无码a区在线观看视频app | 精品aⅴ一区二区三区 | 国产高清av在线播放 | 亚洲欧美国产精品久久 | 国产欧美精品一区二区三区 | 久久久久se色偷偷亚洲精品av | 国内综合精品午夜久久资源 | 一二三四社区在线中文视频 | 精品国产精品久久一区免费式 | 两性色午夜视频免费播放 | 久久午夜无码鲁丝片午夜精品 | 女人色极品影院 | 午夜精品一区二区三区的区别 | 国产sm调教视频在线观看 | 高潮喷水的毛片 | 无遮无挡爽爽免费视频 | 丰满妇女强制高潮18xxxx | 一本色道婷婷久久欧美 | 久久国产精品萌白酱免费 | а√天堂www在线天堂小说 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 色欲久久久天天天综合网精品 | 在线播放免费人成毛片乱码 | 荫蒂添的好舒服视频囗交 | 亚洲国精产品一二二线 | 国产精品美女久久久网av | 久久久无码中文字幕久... | 性欧美大战久久久久久久 | 久久国产精品精品国产色婷婷 | 欧美性色19p | 国产精品国产三级国产专播 | 国产偷抇久久精品a片69 | 久久久久国色av免费观看性色 | 色诱久久久久综合网ywww | 国产成人无码区免费内射一片色欲 | 又紧又大又爽精品一区二区 | 久久久婷婷五月亚洲97号色 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 大色综合色综合网站 | 天堂无码人妻精品一区二区三区 | 国产精品无套呻吟在线 | 亚洲无人区午夜福利码高清完整版 | 欧美一区二区三区视频在线观看 | 天堂亚洲免费视频 | 亚洲国产欧美在线成人 | ass日本丰满熟妇pics | 牛和人交xxxx欧美 | 亚洲精品久久久久avwww潮水 | 国产高潮视频在线观看 | 少妇邻居内射在线 | √天堂中文官网8在线 | 国产精品久久久久7777 | 男人扒开女人内裤强吻桶进去 | 国产莉萝无码av在线播放 | 亚洲综合在线一区二区三区 | 成人免费视频视频在线观看 免费 | 精品无人国产偷自产在线 | 九九久久精品国产免费看小说 | 伊人久久大香线蕉亚洲 | 精品偷拍一区二区三区在线看 | 国产一区二区三区日韩精品 | 97无码免费人妻超级碰碰夜夜 | √天堂资源地址中文在线 | 国产va免费精品观看 | 无码av中文字幕免费放 | 亚洲日韩一区二区三区 | 日日橹狠狠爱欧美视频 | 中文亚洲成a人片在线观看 | 国产人成高清在线视频99最全资源 | 男女猛烈xx00免费视频试看 | 国产精品无码一区二区三区不卡 | 国内精品人妻无码久久久影院 | 久久国语露脸国产精品电影 | 亚洲中文字幕在线无码一区二区 | 人妻体内射精一区二区三四 | 日欧一片内射va在线影院 | 成 人 网 站国产免费观看 | 四虎永久在线精品免费网址 | 国产成人无码区免费内射一片色欲 | 婷婷色婷婷开心五月四房播播 | 青青青手机频在线观看 | 国产精品亚洲五月天高清 | 色欲综合久久中文字幕网 | 中文字幕无码视频专区 | 国内丰满熟女出轨videos | 国产精品亚洲lv粉色 | 婷婷六月久久综合丁香 | 高潮毛片无遮挡高清免费 | 在线亚洲高清揄拍自拍一品区 | 国产成人无码av片在线观看不卡 | 精品亚洲韩国一区二区三区 | 久久99国产综合精品 | 国产精品高潮呻吟av久久4虎 | 日韩av激情在线观看 | 国产精品美女久久久网av | 国产特级毛片aaaaaa高潮流水 | 美女扒开屁股让男人桶 | 51国偷自产一区二区三区 | 久久精品国产一区二区三区肥胖 | 亚洲中文字幕无码中文字在线 | 亚洲日本一区二区三区在线 | 久久无码中文字幕免费影院蜜桃 | 色一情一乱一伦一区二区三欧美 | 亚洲国产综合无码一区 | 青草青草久热国产精品 | 中文字幕无码视频专区 | 强开小婷嫩苞又嫩又紧视频 | 麻豆蜜桃av蜜臀av色欲av | 最新版天堂资源中文官网 | 久久精品中文闷骚内射 | 午夜精品一区二区三区的区别 | 又大又硬又黄的免费视频 | 亚洲国产精品一区二区第一页 | 久久人人97超碰a片精品 | 鲁一鲁av2019在线 | 亚洲精品国产第一综合99久久 | 精品偷拍一区二区三区在线看 | 成人亚洲精品久久久久 | 国产黄在线观看免费观看不卡 | 久久久久国色av免费观看性色 | 欧美国产日韩久久mv | 国产精品美女久久久久av爽李琼 | 在线观看国产午夜福利片 | 久久久精品456亚洲影院 | 亚洲精品一区二区三区在线观看 | 熟妇女人妻丰满少妇中文字幕 | 色欲av亚洲一区无码少妇 | 欧美丰满熟妇xxxx性ppx人交 | 亚洲日本va中文字幕 | 天天躁夜夜躁狠狠是什么心态 | 亚洲精品一区二区三区婷婷月 | 精品久久久久香蕉网 | 巨爆乳无码视频在线观看 | 最新国产麻豆aⅴ精品无码 | 欧洲美熟女乱又伦 | 国産精品久久久久久久 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 奇米影视7777久久精品人人爽 | 亚洲国产成人a精品不卡在线 | 日韩欧美中文字幕在线三区 | 亚洲理论电影在线观看 | 一个人看的www免费视频在线观看 | 亚洲熟妇自偷自拍另类 | 国产无遮挡又黄又爽又色 | 无码国模国产在线观看 | 免费人成在线视频无码 | 水蜜桃亚洲一二三四在线 | 日韩av激情在线观看 | 天堂а√在线地址中文在线 | 一本久道高清无码视频 | 亚洲精品国产品国语在线观看 | 澳门永久av免费网站 | 人人超人人超碰超国产 | 国产色视频一区二区三区 | 午夜精品一区二区三区的区别 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲日韩av一区二区三区四区 | 无码国产色欲xxxxx视频 | 午夜精品一区二区三区在线观看 | 学生妹亚洲一区二区 | 精品国产精品久久一区免费式 | 免费国产成人高清在线观看网站 | 亚洲国产成人av在线观看 | 国产av无码专区亚洲a∨毛片 | 国产午夜亚洲精品不卡下载 | 色综合久久中文娱乐网 | 狠狠色噜噜狠狠狠狠7777米奇 | 婷婷综合久久中文字幕蜜桃三电影 | 国产成人无码午夜视频在线观看 | 婷婷丁香五月天综合东京热 | 国产尤物精品视频 | 国产一区二区不卡老阿姨 | 国产精品高潮呻吟av久久 | aa片在线观看视频在线播放 | 国产欧美亚洲精品a | 奇米影视7777久久精品 | 日本乱偷人妻中文字幕 | 少妇邻居内射在线 | 狠狠综合久久久久综合网 | 少妇被黑人到高潮喷出白浆 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产激情综合五月久久 | 精品aⅴ一区二区三区 | 亚洲中文字幕久久无码 | 精品国产一区av天美传媒 | www国产亚洲精品久久网站 | 精品熟女少妇av免费观看 | 奇米影视7777久久精品人人爽 | 日韩人妻少妇一区二区三区 | 国产做国产爱免费视频 | 欧美xxxx黑人又粗又长 | 日本乱人伦片中文三区 | www国产亚洲精品久久久日本 | 精品无码一区二区三区爱欲 | 亚洲 欧美 激情 小说 另类 | 亚洲精品无码国产 | 四虎4hu永久免费 | 亚洲综合精品香蕉久久网 | 无码国内精品人妻少妇 | 伊人色综合久久天天小片 | 亚洲中文字幕乱码av波多ji | 欧洲熟妇精品视频 | 亚洲 a v无 码免 费 成 人 a v | 国产成人综合色在线观看网站 | 久久久久99精品成人片 | 四虎国产精品免费久久 | 99riav国产精品视频 | 水蜜桃亚洲一二三四在线 | 大屁股大乳丰满人妻 | 丁香花在线影院观看在线播放 | 色综合久久中文娱乐网 | 性啪啪chinese东北女人 | 亚洲va中文字幕无码久久不卡 | 4hu四虎永久在线观看 | 国产亚洲精品久久久久久大师 | 成人精品一区二区三区中文字幕 | 久久99精品国产麻豆蜜芽 | 久久久精品成人免费观看 | 国产九九九九九九九a片 | 97无码免费人妻超级碰碰夜夜 | 欧美黑人性暴力猛交喷水 | 水蜜桃亚洲一二三四在线 | 老熟妇乱子伦牲交视频 | 国产成人av免费观看 | 欧美人与物videos另类 | 久久99精品久久久久久 | 国产av无码专区亚洲awww | 十八禁真人啪啪免费网站 | 高潮毛片无遮挡高清免费 | 中文亚洲成a人片在线观看 | 亚洲中文字幕无码中字 | 国产亚洲日韩欧美另类第八页 | 亚洲国产午夜精品理论片 | 欧美成人午夜精品久久久 | 久久人人97超碰a片精品 | 亚洲综合在线一区二区三区 | 久久精品女人天堂av免费观看 | yw尤物av无码国产在线观看 | 性色av无码免费一区二区三区 | 无码av最新清无码专区吞精 | 国产人妻大战黑人第1集 | 中文字幕无码日韩欧毛 | 午夜熟女插插xx免费视频 | 国语自产偷拍精品视频偷 | 无码午夜成人1000部免费视频 | 久久99精品久久久久久动态图 | 青青青爽视频在线观看 | 久久久久久久人妻无码中文字幕爆 | 国产亚洲日韩欧美另类第八页 | 中国大陆精品视频xxxx | 国产无遮挡又黄又爽免费视频 | 色五月丁香五月综合五月 | 大地资源网第二页免费观看 | 成人影院yy111111在线观看 | 日本丰满熟妇videos | 久久亚洲日韩精品一区二区三区 | 欧美丰满老熟妇xxxxx性 | 国产精品美女久久久网av | 国产成人午夜福利在线播放 | 国产综合色产在线精品 | ass日本丰满熟妇pics | 亚洲精品国产品国语在线观看 | 久久99精品久久久久婷婷 | 成人试看120秒体验区 | 国产精品久久国产三级国 | 老熟女乱子伦 | 日韩精品成人一区二区三区 | 免费无码午夜福利片69 | 77777熟女视频在线观看 а天堂中文在线官网 | 欧美喷潮久久久xxxxx | 精品久久久无码人妻字幂 | 国产精品人妻一区二区三区四 | 欧美日韩一区二区综合 | 精品久久久久香蕉网 | 亚洲精品www久久久 | 久久综合九色综合欧美狠狠 | 成人aaa片一区国产精品 | 国产69精品久久久久app下载 | 又粗又大又硬毛片免费看 | 丰满人妻精品国产99aⅴ | 日韩精品无码一区二区中文字幕 | 伊人久久大香线焦av综合影院 | 免费观看又污又黄的网站 | 久久久久国色av免费观看性色 | 蜜臀aⅴ国产精品久久久国产老师 | 国产麻豆精品精东影业av网站 | 亚洲欧美色中文字幕在线 | 一本精品99久久精品77 | 撕开奶罩揉吮奶头视频 | 亚洲精品中文字幕 | 婷婷色婷婷开心五月四房播播 | 露脸叫床粗话东北少妇 | 人人妻人人澡人人爽人人精品浪潮 | 国产香蕉97碰碰久久人人 | 婷婷综合久久中文字幕蜜桃三电影 | 曰韩无码二三区中文字幕 | 美女黄网站人色视频免费国产 | 中文精品无码中文字幕无码专区 | 中文无码成人免费视频在线观看 | 5858s亚洲色大成网站www | 精品国产一区av天美传媒 | 男女猛烈xx00免费视频试看 | 欧美日韩一区二区三区自拍 | 亚洲乱码国产乱码精品精 | 国产亚洲精品精品国产亚洲综合 | 一本一道久久综合久久 | 伊人久久大香线蕉av一区二区 | 麻豆精品国产精华精华液好用吗 | 老司机亚洲精品影院 | 久久熟妇人妻午夜寂寞影院 | 国产精华av午夜在线观看 | 无码精品人妻一区二区三区av | 少妇性荡欲午夜性开放视频剧场 | 色诱久久久久综合网ywww | 久久精品国产一区二区三区肥胖 | 娇妻被黑人粗大高潮白浆 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 久久久久久久女国产乱让韩 | 国产人成高清在线视频99最全资源 | 亚洲欧美中文字幕5发布 | 日本乱偷人妻中文字幕 | 久久久久久a亚洲欧洲av冫 | 51国偷自产一区二区三区 | 亚洲精品鲁一鲁一区二区三区 | 在线观看国产午夜福利片 | 久久精品99久久香蕉国产色戒 | 国产麻豆精品精东影业av网站 | 亚洲欧洲无卡二区视頻 | 欧美一区二区三区 | 最新国产乱人伦偷精品免费网站 | 未满小14洗澡无码视频网站 | 欧美人与禽猛交狂配 | 男女作爱免费网站 | 性色av无码免费一区二区三区 | 免费中文字幕日韩欧美 | 少妇性荡欲午夜性开放视频剧场 | 国产色在线 | 国产 | 无码人妻少妇伦在线电影 | 久久久久成人精品免费播放动漫 | 国产精品国产自线拍免费软件 | 欧美 日韩 人妻 高清 中文 | 熟女少妇在线视频播放 | 亚洲毛片av日韩av无码 | 亚洲综合无码一区二区三区 | 九九在线中文字幕无码 | 国产成人无码av在线影院 | 午夜福利试看120秒体验区 | 亚洲精品国偷拍自产在线观看蜜桃 | 免费无码肉片在线观看 | 天天拍夜夜添久久精品 | 日本一区二区三区免费播放 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲精品一区二区三区婷婷月 | 国产人妻精品一区二区三区不卡 | av小次郎收藏 | 最近的中文字幕在线看视频 | 午夜无码区在线观看 | 夜夜夜高潮夜夜爽夜夜爰爰 | 亚洲 a v无 码免 费 成 人 a v | 无码帝国www无码专区色综合 | 高清不卡一区二区三区 | 久久伊人色av天堂九九小黄鸭 | 九九在线中文字幕无码 | 欧美成人午夜精品久久久 | 中国大陆精品视频xxxx | 精品无人国产偷自产在线 | 国产三级久久久精品麻豆三级 | 国产精品免费大片 | 国产精品毛片一区二区 | 欧美黑人乱大交 | 国产凸凹视频一区二区 | 特大黑人娇小亚洲女 | 亚洲成a人片在线观看无码3d | 亚洲精品午夜无码电影网 | 亚洲欧美日韩国产精品一区二区 | 国色天香社区在线视频 | 又大又紧又粉嫩18p少妇 | 红桃av一区二区三区在线无码av | 大肉大捧一进一出好爽视频 | 亚洲欧美日韩综合久久久 | 日本免费一区二区三区最新 | 国内揄拍国内精品少妇国语 | 中文久久乱码一区二区 | 性色欲网站人妻丰满中文久久不卡 | 捆绑白丝粉色jk震动捧喷白浆 | 亚洲人成网站色7799 | 国产午夜亚洲精品不卡下载 | 色五月五月丁香亚洲综合网 | 精品无码av一区二区三区 | 成人一在线视频日韩国产 | 俺去俺来也在线www色官网 | 国语精品一区二区三区 | 97久久精品无码一区二区 | 精品亚洲成av人在线观看 | 一个人看的www免费视频在线观看 | 久久午夜夜伦鲁鲁片无码免费 | 欧美人妻一区二区三区 | 一个人看的视频www在线 | 无码成人精品区在线观看 | 欧美 日韩 人妻 高清 中文 | 亚洲gv猛男gv无码男同 | 无码播放一区二区三区 | 亚洲高清偷拍一区二区三区 | 牛和人交xxxx欧美 | 国产无遮挡吃胸膜奶免费看 | 色欲久久久天天天综合网精品 | 人妻插b视频一区二区三区 | 女高中生第一次破苞av | 成人免费视频视频在线观看 免费 | 国产成人精品三级麻豆 | 少妇性l交大片 | 99精品无人区乱码1区2区3区 | 99麻豆久久久国产精品免费 | 国产av久久久久精东av | 亚洲欧美日韩国产精品一区二区 | 中文字幕色婷婷在线视频 | 少妇高潮一区二区三区99 | 无码午夜成人1000部免费视频 | 国产又爽又黄又刺激的视频 | 少女韩国电视剧在线观看完整 | 精品欧洲av无码一区二区三区 | 鲁鲁鲁爽爽爽在线视频观看 | 色一情一乱一伦一区二区三欧美 | av无码不卡在线观看免费 | 久久久久久亚洲精品a片成人 | 少妇无套内谢久久久久 | 国产成人一区二区三区在线观看 | 亚洲自偷自偷在线制服 | 男女爱爱好爽视频免费看 | 色老头在线一区二区三区 | 国产精品多人p群无码 | 欧美性色19p | 精品欧洲av无码一区二区三区 | 亚洲精品www久久久 | 日本乱人伦片中文三区 | 夜精品a片一区二区三区无码白浆 | 国产色xx群视频射精 | 久久人人爽人人人人片 | 久久综合久久自在自线精品自 | 国产精品美女久久久久av爽李琼 | 久久久久久a亚洲欧洲av冫 | 欧美xxxxx精品 | 正在播放老肥熟妇露脸 | 久久99精品久久久久久动态图 | 久久人人爽人人人人片 | 一本色道婷婷久久欧美 | 欧美 日韩 亚洲 在线 | 亚洲乱亚洲乱妇50p | 欧洲极品少妇 | 免费播放一区二区三区 | 精品夜夜澡人妻无码av蜜桃 | 四虎国产精品免费久久 | 国产成人一区二区三区别 | 人妻互换免费中文字幕 | 中国女人内谢69xxxx | 亚洲中文字幕在线无码一区二区 | 真人与拘做受免费视频 | 久久精品99久久香蕉国产色戒 | 日日麻批免费40分钟无码 | 88国产精品欧美一区二区三区 | 97夜夜澡人人爽人人喊中国片 | 久久国产劲爆∧v内射 | 亚洲色成人中文字幕网站 | 国产精品久久久久久亚洲影视内衣 | 成熟妇人a片免费看网站 | 色五月丁香五月综合五月 | 国产97色在线 | 免 | 欧美高清在线精品一区 | 国内揄拍国内精品少妇国语 | a片在线免费观看 | 亚洲中文字幕av在天堂 | 国产午夜福利亚洲第一 | 精品国精品国产自在久国产87 | 无码人妻精品一区二区三区不卡 | 日本肉体xxxx裸交 | 成人影院yy111111在线观看 | 欧洲极品少妇 | 特级做a爰片毛片免费69 | 老太婆性杂交欧美肥老太 | 久久伊人色av天堂九九小黄鸭 | 亚洲自偷自偷在线制服 | 麻豆蜜桃av蜜臀av色欲av | 久青草影院在线观看国产 | 欧美性猛交内射兽交老熟妇 | 色狠狠av一区二区三区 | 国语精品一区二区三区 | 国产激情无码一区二区app | 精品午夜福利在线观看 | 99久久久无码国产精品免费 | 亚洲一区二区三区无码久久 | 久久亚洲日韩精品一区二区三区 | 无码人妻av免费一区二区三区 | 欧美国产日韩亚洲中文 | 在线亚洲高清揄拍自拍一品区 | 久久无码中文字幕免费影院蜜桃 | 人人超人人超碰超国产 | 国产人妻久久精品二区三区老狼 | 午夜福利不卡在线视频 | 国产美女精品一区二区三区 | 色五月丁香五月综合五月 | 久久综合网欧美色妞网 | 精品久久综合1区2区3区激情 | 国产亚洲精品久久久久久久 | 国产乱人伦av在线无码 | 免费中文字幕日韩欧美 | 国产免费久久久久久无码 | 九月婷婷人人澡人人添人人爽 | 国产9 9在线 | 中文 | 精品无码国产自产拍在线观看蜜 | 日本精品少妇一区二区三区 | 97夜夜澡人人双人人人喊 | 狠狠综合久久久久综合网 | 老子影院午夜伦不卡 | 日韩精品成人一区二区三区 | 日本熟妇乱子伦xxxx | 成人一区二区免费视频 | 丰满肥臀大屁股熟妇激情视频 | 性生交大片免费看l | 日本乱人伦片中文三区 | 国产无遮挡又黄又爽又色 | 亚洲精品一区二区三区婷婷月 | 日韩av无码中文无码电影 | 亚洲s色大片在线观看 | 国产疯狂伦交大片 | 撕开奶罩揉吮奶头视频 | 精品久久久中文字幕人妻 | 中文字幕无码av波多野吉衣 | 欧美xxxxx精品 | 熟妇人妻无乱码中文字幕 | 午夜精品一区二区三区的区别 | 少女韩国电视剧在线观看完整 | 午夜性刺激在线视频免费 | 一本色道久久综合狠狠躁 | 乱码午夜-极国产极内射 | 国产内射老熟女aaaa | 国产精品亚洲五月天高清 | 欧美日本精品一区二区三区 | 久久精品中文闷骚内射 | 国产亚洲精品久久久闺蜜 | 日韩精品乱码av一区二区 | 欧美日韩一区二区免费视频 | 夜夜躁日日躁狠狠久久av | 真人与拘做受免费视频一 | 欧美日本日韩 | 人人爽人人澡人人高潮 | 国产亚洲精品久久久久久久久动漫 | 377p欧洲日本亚洲大胆 | 久久久久亚洲精品中文字幕 | 成人无码精品1区2区3区免费看 | 偷窥日本少妇撒尿chinese | 欧美精品无码一区二区三区 | 久久精品无码一区二区三区 | 国产精品嫩草久久久久 | 国产黑色丝袜在线播放 | 亚洲日韩av一区二区三区四区 | 国产精品久久久午夜夜伦鲁鲁 | 77777熟女视频在线观看 а天堂中文在线官网 | 国产成人无码av片在线观看不卡 | 日产精品高潮呻吟av久久 | 国内精品人妻无码久久久影院蜜桃 | 亚洲成av人片天堂网无码】 | 精品人妻av区 | 精品国产aⅴ无码一区二区 | 欧美人与动性行为视频 | 亚洲爆乳精品无码一区二区三区 | 国产综合久久久久鬼色 | 亚洲国产欧美国产综合一区 | 成人精品视频一区二区 | 国产精品久久久久久久影院 | 久久99国产综合精品 | 超碰97人人做人人爱少妇 | 亚洲中文字幕乱码av波多ji | 亚洲一区二区三区在线观看网站 | 精品少妇爆乳无码av无码专区 | 欧美性黑人极品hd | 久久久国产一区二区三区 | 亚洲热妇无码av在线播放 | 国产午夜福利100集发布 | 国产精品无码一区二区三区不卡 | 在线视频网站www色 | 日本熟妇大屁股人妻 | 久久精品国产一区二区三区肥胖 | 亚洲欧美日韩综合久久久 | 性欧美疯狂xxxxbbbb | 精品无码国产自产拍在线观看蜜 | 国产成人午夜福利在线播放 | 亚洲精品国偷拍自产在线观看蜜桃 | 老子影院午夜伦不卡 | 亚洲成a人片在线观看无码 | 蜜桃视频插满18在线观看 | 午夜丰满少妇性开放视频 | 高清无码午夜福利视频 | 兔费看少妇性l交大片免费 | 全黄性性激高免费视频 | 亚洲色偷偷男人的天堂 | 国产成人精品一区二区在线小狼 | 亚洲成av人在线观看网址 | 久久久久久久人妻无码中文字幕爆 | 熟妇人妻中文av无码 | 久久久久久av无码免费看大片 | 亚洲成a人片在线观看无码 | 人人妻人人澡人人爽精品欧美 | 粗大的内捧猛烈进出视频 | 亚洲理论电影在线观看 | 日本精品人妻无码77777 天堂一区人妻无码 | 亚洲自偷自偷在线制服 | 欧美35页视频在线观看 | 久久精品国产大片免费观看 | 欧美 日韩 亚洲 在线 | 免费观看黄网站 | 又紧又大又爽精品一区二区 | 精品国偷自产在线 | 黑人粗大猛烈进出高潮视频 | 牛和人交xxxx欧美 | 无码av免费一区二区三区试看 | 国产激情无码一区二区app | 一本久道久久综合狠狠爱 | 亚洲精品鲁一鲁一区二区三区 | 天天拍夜夜添久久精品大 | 亚洲春色在线视频 | aa片在线观看视频在线播放 | 奇米影视7777久久精品人人爽 | 无码人妻出轨黑人中文字幕 | 啦啦啦www在线观看免费视频 | 人妻aⅴ无码一区二区三区 | 久久人人97超碰a片精品 | 久久精品视频在线看15 | 中文字幕av日韩精品一区二区 | 国产绳艺sm调教室论坛 | 中文字幕无码日韩专区 | 欧美日韩人成综合在线播放 | 精品人妻人人做人人爽夜夜爽 | 国产精品久久久午夜夜伦鲁鲁 | 性啪啪chinese东北女人 | 人人爽人人澡人人高潮 | 无遮挡啪啪摇乳动态图 | 欧美35页视频在线观看 | 女人被男人爽到呻吟的视频 | 国产尤物精品视频 | 亚洲乱码国产乱码精品精 | v一区无码内射国产 | 青草青草久热国产精品 | 好男人www社区 | 国产人妻精品午夜福利免费 | 亚洲精品国产精品乱码不卡 | 国产人妻精品午夜福利免费 | 中文字幕无码视频专区 | 亚洲第一网站男人都懂 | 欧美日韩亚洲国产精品 | 在教室伦流澡到高潮hnp视频 | 精品一区二区三区波多野结衣 | 亚洲综合无码久久精品综合 | 亚洲の无码国产の无码步美 | 亚洲欧美日韩成人高清在线一区 | 东京无码熟妇人妻av在线网址 | 国产成人无码区免费内射一片色欲 | 精品成在人线av无码免费看 | 久久人人97超碰a片精品 | 欧美怡红院免费全部视频 | 国产电影无码午夜在线播放 | 亚洲成熟女人毛毛耸耸多 | 宝宝好涨水快流出来免费视频 |