关于Python中战舰游戏GUI的意见

时间:2012-02-18 23:53:57

标签: python tkinter pygame

我正在为一个项目制作战舰游戏。虽然我已完成逻辑并且游戏使用文本输入。我希望在使用为文本创建的方法的同时制作(非常基本的)GUI。

我一直在关注的两个选项是PyGame和Tkinter。 PyGame似乎没有文本输出/标签功能。 Tkinter确实如此,但它似乎并不像PyGame那么简单。

虽然我很乐意将这些框架中的任何一个给予他们应得的时间,但在此之前我只有60多个小时。

我想知道是否有人有任何经验或见解,如果这是一个现实的选择。

一如既往地谢谢!

5 个答案:

答案 0 :(得分:1)

你可以检查Kivy,它在OpenGL之上工作,提供几个基本小部件(标签,按钮,滑块,文本输入,布局......),你可以创建自己的/显示图形等。作为python框架,几乎适用于所有平台。

您还可以查看最近的game contest,看看您可以用它做些什么:)

答案 1 :(得分:1)

这在Tkinter中是一件相当简单的事情。战舰游戏显示一系列坐标,您可以将其显示为一个检查按钮网格。

答案 2 :(得分:0)

你为什么不试试Cocos2D? 它是更高级别,它支持丰富的标签(Class cocos.text.RichLabel)

http://cocos2d.org/

答案 3 :(得分:0)

我建议您使用pyqt / pyside执行此任务。这使您可以访问功能强大的Qt框架,该框架具有出色的文档。如果您设计的游戏不需要快速图形,您只需使用QGraphicsView/QGraphicsScene和相关类来显示图标/数字/等等。当然,您也可以将OpenGL与Python和Qt一起使用。

答案 4 :(得分:0)

你可以在pygame上渲染文字,只需使用:

class pygame.font.Font

#create a new Font object from a file
pygame.font.Font(filename, size): return Font
pygame.font.Font(object, size): return Font

方法Font.render

#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)