Название: Реализация простенькой игры Отправлено: 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? Название: 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, что бы по ней напр проверять... Ну дык отнаследуйся и добавь две переменные, одну для типа, другую для цвета. |