Нужна помощь для отображения колоды карт с помощью GTK! - PullRequest
0 голосов
/ 11 июля 2010

Эй, ребята, я строю карточную игру, в которой отображается колода карт (что-то вроде пасьянса).Мне было интересно, что вы дадите мне несколько советов по этому поводу?Также, если бы вы могли направить меня к учебнику для подобных вещей (я уже изучаю gtk doc).

Ответы [ 2 ]

1 голос
/ 12 июля 2010

Вы должны проверить, что уже сделано в GnomeGames:

Получите код и посмотрите, как они это сделали. Кажется, что они делают каждую карту: Например, в исходном коде Aisleriot, в game.h, у вас есть определение структуры ArSlot, в которой хранятся все карты одного слота. Там вы можете видеть, что они определяют объединение «расширения», которое просто определяет смещение между картами.

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

0 голосов
/ 11 июля 2010

К сожалению, в GTK + нет виджета, который бы отображал стопку карт, поэтому вам придется написать один самостоятельно.Вы должны использовать GtkDrawingArea (желательно, используя его подклассы), и в обработчике для сигнала expose_event сделайте ваши вещи для рисования.Для рисования вы можете использовать либо простой GDK, который является более простым, либо использовать Cairo, который является более гибкой библиотекой для рисования (заметьте, Cairo в любом случае используется GTK +, так что это не дополнительная зависимость. Если вы хотите больше, вы можете даже использовать OpenGL (затем вы должны использовать библиотеку GtkGlExt).

GTK Tutorial имеет главу, посвященную созданию собственных виджетов.

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