Мнение о графическом интерфейсе для игры на линкоре в Python - PullRequest
0 голосов
/ 19 февраля 2012

Я делаю линкор для проекта. Пока я закончил логику и игра работает с вводом текста. Я надеялся создать (очень простой) графический интерфейс, все еще используя методы, созданные для текста.

Два варианта, на которые я смотрел, это PyGame и Tkinter. PyGame, похоже, не имеет функции вывода текста / метки. Tkinter делает, но это не так легко (я чувствую), как PyGame.

Хотя я бы хотел уделить любой из этих рамок время, которого они заслуживают, у меня есть чуть более 60 часов, прежде чем это должно произойти.

Я хотел бы знать, есть ли у кого-нибудь опыт или идеи, и является ли это реалистичным вариантом.

Спасибо как всегда!

Ответы [ 5 ]

2 голосов
/ 19 февраля 2012

Это довольно тривиальная вещь в Tkinter. В линейном корабле показывается массив координат, который вы можете отобразить в виде сетки контрольных кнопок.

1 голос
/ 19 февраля 2012

Вы можете проверить Kivy , он работает поверх OpenGL, предоставляет несколько основных виджетов (метка, кнопка, ползунок, ввод текста, макеты, ...), и вы можете создавать свои собственные / отображать графику и т. д. Работает как Python Framework, почти на всех платформах.

Вы также можете проверить недавний игровой конкурс , чтобы увидеть, что с ним можно сделать:)

0 голосов
/ 21 февраля 2012

Вы можете визуализировать текст в Pygame, просто используйте:

класс 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)
0 голосов
/ 19 февраля 2012

Я предлагаю вам использовать pyqt / pyside для этой задачи.Это позволяет вам получить доступ к мощной инфраструктуре Qt, которая имеет отличную документацию.Если вы разрабатываете игру, в которой не требуется быстрая графика, вы можете просто использовать QGraphicsView / QGraphicsScene и связанные классы для отображения значков / чисел / чего угодно.Конечно, вы можете использовать OpenGL с Python и Qt.

0 голосов
/ 19 февраля 2012

Почему бы вам не попробовать Cocos2D?Это более высокий уровень, и он поддерживает расширенную маркировку (класс cocos.text.RichLabel)

http://cocos2d.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...