使用pysdl2创建简单ui的python库

pysdl2-sdl2ui的Python项目详细描述


pysdl2-sdl2ui
====br/>

>一个使用pysdl2制作简单用户界面的库。



>简介





``python
```python
my app类(sdl2ui.app):
width=256
height=224
zoom=3
;注意:你想要的fps:更少的fps:更少的fps=更少的cpu使用

name=“我的应用程序”
br/>#注意:按您希望首先显示的顺序排列处理程序
默认的处理程序=[mainhandler,listselectorhandler,menuhandler]
默认的处理程序资源=[('background','background.png')]



myapp.run(handlers=[sdl2ui.handler.debuggerhandler])
````

三种主要方法:`init()`,`peek()`和`draw()`:

*`init()`在应用程序启动(实例化)时立即调用。您可以在这里设置实例中的所有类型的变量,然后再显示任何内容。
*`peek()`在每一帧调用。可以在此处捕获输入。
如果peek()返回true,则sdl2ui将重新绘制整个屏幕(使用所有
活动处理程序)。每次应用程序需要重新绘制屏幕时都会调用
*`render()。

self.app.keys[sdl2.sdl_scancode_d]:
self.app.keys[sdl2.sdl_scancode_d]=false
注意:切换调试器模式
self.app.handler s[sdl2ui.handler.debuggerhandler].toggle()
elif self.app.keys[sdl2.sdl_scancode_s]:
self.app.keys[sdl2.sdl_scancode_s]=false
#注意:切换菜单和列表选择器的显示
self.app.handlers[listselectorhandler].toggle()
self.app.handlers[menuhandler].toggle()
elif self.app.keys[sdl2.sdl扫描代码u q]:
self.app.keys[sdl2.sdl扫描代码u q]=false
self.app.quit=true
否则:
return false
return true

def render(self):
self.app.draw('background',x=0,y=0)
`````
``python
``class menuhandler(sdl2ui.handler):
highlight=(0x 0 0,0x00,0xFF,0xFF)
行空间=8
默认活动=false
菜单操作=[
(“保存”,lambda x:x.save()),
(“加载”,lambda x:x.load()),
(“退出”,lambda x:x.quit()),
]


def init(self):
self.select=0

todo save()
pass


def load(self):
todo load()
pass

self.app.quit=true

def peek(self):
self.app.keys[sdl2.sdl_scancode_up]:
self.app.keys[sdl2.sdl_scancode_up]=false
self.select-=1
如果self.select<;0:
self.select=len(self.menu_actions)-1
elif self.app.keys[sdl2.sdl_scancode_down]:
self.app.keys[sdl2.sdl_scancode_down]=false
self.select+=1
如果self.select>;=len(self.菜单操作):
self.select=0
elif self.app.keys[sdl2.sdl_scancode_return]:
self.app.keys[sdl2.sdl_scancode_return]=false
func=self.menu操作[self.select]
func()
否则:
返回false
返回true

def render(self):
border=10
x,y=border,border
对于i,(label,u)in enumerate(self.menu操作):
如果i==self,则选择:
注意:您可以使用带有self.app.tint(self.highlight):
self.app.write('Font-6',x,y,label)
其他:
注意:字体-6是一个内置库的位图字体
self.app.write('FONT-6',x,y,label)
y+=self.line\u space
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将firebase数据放在JTable中   java如何使用ApacheWicket制作类似IOS的滑动开关?   java正在尝试查找漏洞!anon对pmap意味着什么?   java抽象与抽象类和接口   java日期+天数计算器   java查找数组中3个数字的最小乘积[代码错误?]   有没有办法创建一个标签,这样当编译器运行时,它会用java中的语句替换这个标签   无法解析java变量   Java Swing中正确的ModelViewController模式   java将数据推送到设备的最佳方式是什么?   java我可以在线程池中运行后台任务吗?   java如何将excel工作表复制到同一工作簿?   java如何在groovy spock中模拟新的class()调用   spring自动部署java(守护程序或web)应用程序工具   java使JTabbedPane居中,而不是实际的选项卡   java如何使这些简单而美丽?   java如何有选择地重写类的函数   如何将wkhtmltopdf集成到我的java Web应用程序中?   java Infinispan操作模式   拼图65java拼图。整数溢出可能发生在涉及负数减法、int.Max_值等的计算中。如何避免这种情况?