我正在为一个项目制作战舰游戏。虽然我已完成逻辑并且游戏使用文本输入。我希望在使用为文本创建的方法的同时制作(非常基本的)GUI。
我一直在关注的两个选项是PyGame和Tkinter。 PyGame似乎没有文本输出/标签功能。 Tkinter确实如此,但它似乎并不像PyGame那么简单。
虽然我很乐意将这些框架中的任何一个给予他们应得的时间,但在此之前我只有60多个小时。
我想知道是否有人有任何经验或见解,如果这是一个现实的选择。
一如既往地谢谢!
答案 0 :(得分:1)
你可以检查Kivy,它在OpenGL之上工作,提供几个基本小部件(标签,按钮,滑块,文本输入,布局......),你可以创建自己的/显示图形等。作为python框架,几乎适用于所有平台。
您还可以查看最近的game contest,看看您可以用它做些什么:)
答案 1 :(得分:1)
这在Tkinter中是一件相当简单的事情。战舰游戏显示一系列坐标,您可以将其显示为一个检查按钮网格。
答案 2 :(得分:0)
你为什么不试试Cocos2D? 它是更高级别,它支持丰富的标签(Class cocos.text.RichLabel)
答案 3 :(得分:0)
我建议您使用pyqt / pyside执行此任务。这使您可以访问功能强大的Qt框架,该框架具有出色的文档。如果您设计的游戏不需要快速图形,您只需使用QGraphicsView/QGraphicsScene和相关类来显示图标/数字/等等。当然,您也可以将OpenGL与Python和Qt一起使用。
答案 4 :(得分:0)
你可以在pygame上渲染文字,只需使用:
#create a new Font object from a file
pygame.font.Font(filename, size): return Font
pygame.font.Font(object, size): return Font
#method of Font() to draw text on a new Surface
Font.render(text, antialias, color, background=None): return Surface
如何在pygame上使用文本的简单示例:
from pygame import font as pgfont, sprite as pgspr
import pygame as pg
class FontSprite(pgspr.DirtySprite):
def __init__(self, text, x, y):
'''self.image = surface'''
pgspr.DirtySprite.__init__(self)
self.text = text
self.color = [0,0,0]
self.image = self.get_image()
self.rect = pg.Rect((x, y), self.image.get_size())
def get_image(self):
self.dirty = 1
return pgfont.Font('fonts\\BRLNSR.TTF', self.size).render(self.text,
True,
self.color)