好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > pygame庫pgu使用示例代碼

pygame庫pgu使用示例代碼

熱門標簽:高德地圖標注收入咋樣 鶴壁手機自動外呼系統違法嗎 沈陽防封電銷電話卡 萊蕪電信外呼系統 銀川電話機器人電話 企業微信地圖標注 B52系統電梯外呼顯示E7 地圖標注多個 怎么辦理400客服電話

前言

現在用pygame制作小游戲的人越來越多,但是pygame它是沒有彈窗機制的
一般解決這個問題我們會使用tkinter庫或者pgu庫兩種方式
其中pgu庫還沒有很適合新手的一個手冊介紹,只有下載文件中的一些函數的例子與說明,因此本文主要介紹pgu由按鈕與設定事件觸發的兩種方式
此外還解決了在pygame的窗口下彈窗的問題

一、pgu是什么?

pgu全稱是Phil's pyGame Utilities,是pygame的一組模塊與腳本,其中還有gui集成了一些小模塊

下載地址

下載地址

pgu主頁

二、使用步驟

 1.安裝庫

window10下打開cmd輸入pip install pygame-pgu即可
也可以用上面的地址直接下載包

2.制作按鈕彈窗

代碼如下(示例):
引入庫

import pygame
import random
import pgu 
from pgu import gui,timer

先用pygame生成一個500*500的窗口,pgu的例子里有許多彈窗,但是在pygame生成的窗口上彈窗的比較少

pygame.init()
screencaption = pygame.display.set_caption('chess')
screen = pygame.display.set_mode((500, 500))

構造一個自定義的彈窗(dialog)類

class TestDialog(gui.Dialog):
    def __init__(this):
        title = gui.Label("Some Dialog Box")                   #彈窗標題
        label = gui.Label("Close this window to resume.")      #彈窗內容
        gui.Dialog.__init__(this, title, label)

初始化,pgu最好生成一個容器來存放需要放的按鈕等,最后記得init初始化

app = gui.App()                       #初始化gui
c = gui.Container(align=-1,valign=-1) #生成gui的容器
abc = TestDialog()                    #生成彈窗abc
btn = gui.Button("a")                 #生成文字為a的按鈕
btn.connect(gui.CLICK, abc.open, None)#將按鈕與彈窗的彈出綁定
c.add(btn,0,0)                        #將按鈕安放在容器(0,0)位置
app.init(c)    

先用pygame生成一個500*500的窗口,再用導入pgu的彈窗元素

pygame.init()
screencaption = pygame.display.set_caption('chess')
screen = pygame.display.set_mode((500, 500))

主函數就是pygame的事件循環獲取機制,但是需要注意的是用app.event函數將pygame的事件傳達到pgu中,否則無法執行pgu的命令

while True:
    for e in pygame.event.get():
        if e.type is pygame.QUIT: 
            pygame.quit()
        else:
            app.event(e)    #將pygame的事件傳遞給pgu,很重要
    screen.fill((0,0,0))    #生成一個屏幕
    app.paint()             #將pgu容器的內容畫出來
    pygame.display.update()

3.制作事件觸發彈窗

除了通過界面上的按鈕觸發事件,我們常常也需要采用發生了某個事件觸發彈窗,這里設置了變量a,每按動一次按鈕a增加1,直到a大于5時觸發彈窗彈出事件
引入庫

a = 0

將a的自增函數綁定到按鈕上

def add(self):
    global a
    a = a + 1
btn.connect(gui.CLICK, add, None)#將按鈕與彈窗的彈出綁定

加入判斷狀態函數,判斷為True時彈出彈窗即可

 if a > 5:
        abc.open()
        a = 0

4.兩種模式完整代碼

按鈕觸發彈窗

import pygame
import random
import pgu 
from pgu import gui,timer


class TestDialog(gui.Dialog):
    def __init__(this):
        title = gui.Label("Some Dialog Box")
        label = gui.Label("Close this window to resume.")
        gui.Dialog.__init__(this, title, label)


pygame.init()
screencaption = pygame.display.set_caption('chess')
screen = pygame.display.set_mode((500, 500))
app = gui.App()                       #初始化gui
c = gui.Container(align=-1,valign=-1) #生成gui的容器
abc = TestDialog()                    #生成彈窗abc
btn = gui.Button("a")                 #生成文字為a的按鈕
btn.connect(gui.CLICK, abc.open, None)#將按鈕與彈窗的彈出綁定
c.add(btn,0,0)                       #將按鈕安放在容器(0,0)位置
app.init(c)                           

while True:
    for e in pygame.event.get():
        if e.type is pygame.QUIT: 
            pygame.quit()
        else:
            app.event(e)    #將pygame的事件傳遞給pgu,很重要
    screen.fill((0,0,0))    #生成一個屏幕
    app.paint()             #將pgu容器的內容畫出
    pygame.display.update()

事件觸發彈窗代碼

import pygame
import random
import pgu 
from pgu import gui,timer


class TestDialog(gui.Dialog):
    def __init__(this):
        title = gui.Label("Some Dialog Box")
        label = gui.Label("Close this window to resume.")
        gui.Dialog.__init__(this, title, label)


pygame.init()
screencaption = pygame.display.set_caption('chess')
screen = pygame.display.set_mode((500, 500))
global a 
a = 0
app = gui.App()                       #初始化gui
c = gui.Container(align=-1,valign=-1) #生成gui的容器
abc = TestDialog()                    #生成彈窗abc
btn = gui.Button("a")                 #生成文字為a的按鈕
def add(self):
    global a
    a = a + 1
btn.connect(gui.CLICK, add, None)#將按鈕與彈窗的彈出綁定
c.add(btn,0,0)                       #將按鈕安放在容器(0,0)位置
app.init(c)                           

while True:
    for e in pygame.event.get():
        if e.type is pygame.QUIT: 
            pygame.quit()
        else:
            app.event(e)    #將pygame的事件傳遞給pgu,很重要
    screen.fill((0,0,0))    #生成一個屏幕
    app.paint()             #將pgu容器的內容畫出
    if a > 5:
        abc.open()
        a = 0
    pygame.display.update()

本人在嘗試時發現:
1、如果沒有screen.fill的函數彈出的窗口會無法關閉
2、如果沒有app.event則pgu事件無法執行

總結

pgu的庫網上內容較少,且較之tkinter運用在pygame上會更加穩定,但是pgu的硬傷是無法顯示中文的界面,因此有這方面的需求最好還是使用tkinter

到此這篇關于pygame庫pgu使用介紹的文章就介紹到這了,更多相關pygame庫pgu使用內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 使用Python第三方庫pygame寫個貪吃蛇小游戲
  • python運用pygame庫實現雙人彈球小游戲
  • pygame庫實現移動底座彈球小游戲
  • pygame庫實現俄羅斯方塊小游戲
  • 使用PyInstaller將Pygame庫編寫的小游戲程序打包為exe文件及出現問題解決方法
  • 詳解使用PyInstaller將Pygame庫編寫的小游戲程序打包為exe文件

標簽:安慶 三亞 烏魯木齊 葫蘆島 呼倫貝爾 銀川 呼倫貝爾 湘西

巨人網絡通訊聲明:本文標題《pygame庫pgu使用示例代碼》,本文關鍵詞  pygame,庫,pgu,使用,示例,代碼,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pygame庫pgu使用示例代碼》相關的同類信息!
  • 本頁收集關于pygame庫pgu使用示例代碼的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 91精品啪在线观看国产91九色 | 国产91单男3p在线观看| 一级国产69式性姿势免费视频| 国产精品久久久久久AV福利软件 | 同性spank男男免费视频| 短裙女教师波多野结衣| 菠萝蜜一区二区三区无码| 午夜剧场操一操| 我是看守专用宠物2| 欧一美一色一伦一A片| 悠悠影院成人综合在线电影| 裸体大胸美女| 波多野结衣被三个老人玩| 黑人巨大精品欧美AV桃花| 91在无码精品秘?国产| 三上悠亚解禁ssni493在线| 尤物tv在线| 黄色片一级毛片| 成人免费的性色视频| 部长睡人妻HD中字| 羞羞漫画?在线入口| 日本特黄高清免费大片爽| 豪门乳妇荡奴| 好大好深视频| 亚洲伊人色情久久综合| 聊斋艳谭电影在线观看| 男女黄色一级片| 粉嫩小泬极品美女AV视频| 金莎朗大尺度床戏裸乳江南男女| 国产91观看| 美女被免费网站在线jk视频 | 香蕉eeww99国产在线观看| 日本欧美中文| 亚洲欧美日韩一区| 丰满大码熟女在线播放| 韩国美女福利视频| 鸡鸡逼逼| 麻豆精品久久精品色综合| 黄色网站手机| 男男3p边攻边受H| tub8日本xxxx|