【Python】PyGameUI控件

文章介绍了作者如何利用pygame和自定义的pygameui库在Windows平板上创建一个包含文本和按钮的大富翁游戏,以及如何使用不同的方法添加UI组件。最后提到pygame不支持Android,作者转向Kivy开发。
摘要由CSDN通过智能技术生成

哈里前段时间写了一个windows平板上自娱自乐(春节和家人一起玩)基于pygame的大富翁游戏。

pygame没有按钮之类的UI控件,写起来不怎么顺手。就自己写一个简单的框架。

仓库地址

哈里PygameUi: pygame ui封装自用 (gitee.com)

使用示例

示例目录

示例代码(test_ui.py)

import pygame
import ui


def ClickBtn(btn):
  """按钮的回调函数"""
  print('btn=', btn, btn.text)


pygame.init()
screen = pygame.display.set_mode((800, 800))
# 写法1
rootPanel = ui.Panel(size=(400, 400))
text = ui.Text('你好 世界!hello world!', size=(400, 100), textSize=30)
rootPanel.AddChildNode('text', text)
btn1 = ui.Btn('点我1', pos=(110, 200), size=(100, 50), rot=45, imgGrid=[1, 1, 1, 1], textShadow=False, downFunc=ClickBtn)
rootPanel.AddChildNode('btn1', btn1)
btn2 = ui.Btn('点我2', pos=(10, 200), size=(100, 50), downFunc=ClickBtn)
rootPanel.AddChildNode('btn2', btn2)
# 写法2
# rootPanel = ui.Panel(
#   size=(400, 400),
#   childPanelDict={
#     'text@Text': {
#       'text': '你好 世界!hello world!',
#       'size': (400, 100),
#       'textSize': 30,
#     },
#     'btn1@Btn': {
#       'text': '点我1',
#       'imgGrid': [1, 1, 1, 1],
#       'pos': (110, 200),
#       'textShadow': False,
#       'size': (100, 50),
#       'rot': 45,
#       'downFunc': ClickBtn,
#     },
#     'btn2@Btn': {
#       'text': '点我2',
#       'pos': (10, 200),
#       'size': (100, 50),
#       'downFunc': ClickBtn,
#     },
#   }
# )
# 写法3;通过json构建UI,这里就不写了读取json和写法2类似的接口
running = True
while running:
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
      running = False
    rootPanel.In(pygame.mouse.get_pos(), event)
  screen.fill((64, 64, 64))
  rootPanel.Draw(screen)
  pygame.display.flip()

示意图:

关于文档

至于更多文档……如果你需要可以评论留言,哈里会慢慢完善……

结语

唉,可惜pygame无法在安卓上运行……所以哈里暂时没有继续深入开发这个框架的动力……转战kivy~

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值