我的目标是制作一个模块,它将在pygame画布上生成一个网格,并允许您通过它们的x和y坐标高亮显示框。在
下面是一个简单的用法示例。在
from grid import Grid
g = Grid(100, 100, 10) # width and height in cells, cell width in pixels
g.highlightBox(2, 2, (0, 255, 0)) # cell x and y, rgb color tuple
g.clearGrid()
这是我目前掌握的密码。问题是,我需要一个事件循环来保持窗口打开并使关闭按钮起作用,但是我还需要允许其他函数绘制到屏幕上。在
^{pr2}$当我运行第一个示例时,代码将被困在循环中,直到循环完成(按下exit按钮),才允许我运行highlightBox
函数。在
首先,我不会将游戏循环放在初始化函数中;请为它找到其他位置。要解决这个问题,只需将要执行的代码放在游戏循环中处理事件的代码旁边:
我认为您需要的是断开网格类与它的显示的连接。你应该让它生成表面,然后由主游戏循环打印到屏幕表面。例如,您的init、highlight_cell和clear_grid方法可以返回曲面,或者创建一个get_surface方法,该方法将在每个游戏循环中调用一次
这将提供更大的灵活性
我得到了一个带有multiprocessing库和管道的工作版本。这似乎有点不和谐,但它将为这个项目工作。在
相关问题 更多 >
编程相关推荐