Pygame 菜单骰子滚动 GUI坚持在屏幕上显示返回的整数值?

问题描述

我最近为各种类型的 D&D 骰子编写了一个随机掷骰子的命令行程序,接下来我想把它变成一个基本的 GUI。

我已经使用 Pygame-Menu 库制作了下面的图像,并且我还有一些函数可以为每个按钮返回一个随机骰子。

但是我如何获得显示在屏幕表面上的骰子结果?
我尝试阅读图书馆文档,但没有看到我理解的有关此主题的任何内容
我还尝试将文本矩形表面 blit 到屏幕上,但似乎也不起作用。

有人熟悉这个特定的 Pygame 库可以提供帮助吗?

Pygame-Menu "Dungeon Dice" GUI

import random
import pygame
import pygame_menu

screen_width = 320
screen_height = 520

done = False
White = (255,255,255)
Grey = (179,179,179)
Black = (17,17,17)
Green = (30,215,96)


pygame.init()
pygame.display.set_caption('Dungeon Dice')
FPS = 60
screen = pygame.display.set_mode((screen_width,screen_height))
width = screen.get_width()
height = screen.get_height()
rollsound = pygame.mixer.sound("roll.mp3")
mouse = pygame.mouse.get_pos()
font = pygame.font.SysFont('Calibri',48)
screen.fill(Black)


def rolld20():
    d20output = random.randint(1,20)
    pygame.mixer.sound.play(rollsound)
    return(d20output)

def rolld12():
    d12output = random.randint(1,12)
    pygame.mixer.sound.play(rollsound)
    return(d12output)

def rolld10():
    d10output = random.randint(1,10)
    pygame.mixer.sound.play(rollsound)
    return(d10output)

def rolld8():
    d8output = random.randint(1,8)
    pygame.mixer.sound.play(rollsound)
    return(d8output)

def rolld6():
    d6output = random.randint(1,6)
    pygame.mixer.sound.play(rollsound)
    return(d6output)

def rolld4():
    d4output = random.randint(1,4)
    pygame.mixer.sound.play(rollsound)
    return(d4output)

def rolld100():
    d100output = random.randint(1,100)
    pygame.mixer.sound.play(rollsound)
    return(d100output)

menu = pygame_menu.Menu('Dungeon Dice',screen_width,screen_height,theme=pygame_menu.themes.THEME_DEFAULT)

menu.add.button('D4',rolld4)
menu.add.button('D6',rolld6)
menu.add.button('D8',rolld8)
menu.add.button('D10',rolld10)
menu.add.button('D12',rolld12)
menu.add.button('D20',rolld20)
menu.add.button('D100',rolld100)
menu.add.button('Quit',pygame_menu.events.EXIT)

menu.mainloop(screen)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)