Russian Qt Forum

Qt => Вопросы новичков => Тема начата: carhun от Сентябрь 10, 2012, 21:33



Название: Реализация простенькой игры
Отправлено: carhun от Сентябрь 10, 2012, 21:33
Добрый день.

Решил попробывать Qt и Necessitas на след. простой игре:
Смысл игры перетащить зарисованный квадратики на свое место. ( см. картинку )

Собственно, вопрос заключается в след. как лучше реализовать?
Пока у меня есть варианты, что есть один виджет, на котором я рисую не закрашенные прямоугольники, поверх этого виджета рисую прозрачный, на к-м я буду рисовать закрашенные прямоугольники, и еще один прозрачный виджет будет создаваться, когда я буду перемещать какой-то квадратик(собственно, перемещение квадратика, я буду отрисовывать на этом виджете).
И второй вариант, завести виджет, на к-м я завожу 2 QPixmap и соотв. на одном QPixmap я отрисовую мои незакрашенные квадратики, на к-ые мне надо поставить мои закрашенные квадартики, и 2й QPixmap - будет у меня для отрисовки закрашенных квадратов, ну и соотв. еще один прозрачный виджет, к-ый будет создаваться, когда я буду перемещать какой-то из квадартов.

Если мои варианты, что я указал выше, вообще плохо, то подскажите пожайлуста, как надо. Также буду не против, если дадите ссылку на лит-ру по программированию игр на Qt. Пока , что я только видел одну книгу, правда не нашел где ее скачать - http://www.amazon.com/Open-Source-Game-Development-Windows/dp/1584504064/ref=sr_1_1?ie=UTF8&qid=1347301989&sr=8-1&keywords=Open+Source+Game+Programming%3A+Qt+Games+for+KDE%2C+PDAs%2C+and+Windows+%28Game+Development%29.


Название: Re: Реализация простенькой игры
Отправлено: lighting от Сентябрь 11, 2012, 09:09
Сделай каждый квадрат виджетом, плюс еще один виджет поверх всех их для отлавливания событий мыши и все дела.


Название: Re: Реализация простенькой игры
Отправлено: carhun от Сентябрь 11, 2012, 20:08
А зачем именно поверх квадротов-виджетов?

Почему не пусть будет виджет, на к-м я буду буду ставить виджет-квадраты ?


Название: Re: Реализация простенькой игры
Отправлено: Bepec от Сентябрь 11, 2012, 20:35
Я бы вообще тупо взял QLabel, задал им картинки и переопределил перетаскивание. :)
Дальше дело математики и paintEvent'a :)


Название: Re: Реализация простенькой игры
Отправлено: carhun от Сентябрь 11, 2012, 20:46
Я бы вообще тупо взял QLabel, задал им картинки и переопределил перетаскивание. :)
Дальше дело математики и paintEvent'a :)

Ага, спасибо...

А подскажите, а Bluetooth либы Qt доступны только для Qt mobility?


Название: Re: Реализация простенькой игры
Отправлено: Bepec от Сентябрь 11, 2012, 21:00
Хех и такие есть? незнал, незнал.
И соответственно ответить не смогу :)


Название: Re: Реализация простенькой игры
Отправлено: V1KT0P от Сентябрь 11, 2012, 21:05
Я бы вообще тупо взял QLabel, задал им картинки и переопределил перетаскивание. :)
Дальше дело математики и paintEvent'a :)

Ага, спасибо...

А подскажите, а Bluetooth либы Qt доступны только для Qt mobility?
Первая же ссылка в гугле намекает что возможно будет работать: http://www.developer.nokia.com/Community/Wiki/Installing_Qt_Mobility_in_Qt_SDK_on_Windows_%28former_Qt_desktop_SDK%29 (http://www.developer.nokia.com/Community/Wiki/Installing_Qt_Mobility_in_Qt_SDK_on_Windows_%28former_Qt_desktop_SDK%29)


Название: Re: Реализация простенькой игры
Отправлено: kambala от Сентябрь 11, 2012, 21:51
2V1KT0P: надо тебе выдать звание «гугломистр» :D


Название: Re: Реализация простенькой игры
Отправлено: lighting от Сентябрь 12, 2012, 10:37
А зачем именно поверх квадротов-виджетов?

Почему не пусть будет виджет, на к-м я буду буду ставить виджет-квадраты ?
Ну чтобы один раз переопределять mouseEvent а не для каждого квадрата. Хотя это конечно не аксиома, как тебе удобнее так и делай.


Название: Re: Реализация простенькой игры
Отправлено: carhun от Сентябрь 12, 2012, 21:15
И еще один вопрос. А как отличить квадрат-незакрашенный от квадрата-закрашеного? Т.е. вот ситуация, когда я положил нужный закрашенный квадрат в нужное место, а допустим кто-то решил его переставить, то как мне отличить  закрашенный от незкрашенного квадрата? Только перебрать, т.е. прверить если в той точке где должен быть незакрашеный квадрат, проверять если в этой строчке еще и закрашенный квадрат? Я так понимаю у виджетов там же нету той же оси Z, что бы по ней напр проверять...


Название: Re: Реализация простенькой игры
Отправлено: V1KT0P от Сентябрь 12, 2012, 21:25
И еще один вопрос. А как отличить квадрат-незакрашенный от квадрата-закрашеного? Т.е. вот ситуация, когда я положил нужный закрашенный квадрат в нужное место, а допустим кто-то решил его переставить, то как мне отличить  закрашенный от незкрашенного квадрата? Только перебрать, т.е. прверить если в той точке где должен быть незакрашеный квадрат, проверять если в этой строчке еще и закрашенный квадрат? Я так понимаю у виджетов там же нету той же оси Z, что бы по ней напр проверять...
Ну дык отнаследуйся и добавь две переменные, одну для типа, другую для цвета.