Russian Qt Forum
Ноябрь 23, 2024, 19:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Реализация простенькой игры  (Прочитано 5469 раз)
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.
Записан
lighting
Гость
« Ответ #1 : Сентябрь 11, 2012, 09:09 »

Сделай каждый квадрат виджетом, плюс еще один виджет поверх всех их для отлавливания событий мыши и все дела.
Записан
carhun
Гость
« Ответ #2 : Сентябрь 11, 2012, 20:08 »

А зачем именно поверх квадротов-виджетов?

Почему не пусть будет виджет, на к-м я буду буду ставить виджет-квадраты ?
Записан
Bepec
Гость
« Ответ #3 : Сентябрь 11, 2012, 20:35 »

Я бы вообще тупо взял QLabel, задал им картинки и переопределил перетаскивание. Улыбающийся
Дальше дело математики и paintEvent'a Улыбающийся
Записан
carhun
Гость
« Ответ #4 : Сентябрь 11, 2012, 20:46 »

Я бы вообще тупо взял QLabel, задал им картинки и переопределил перетаскивание. Улыбающийся
Дальше дело математики и paintEvent'a Улыбающийся

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

А подскажите, а Bluetooth либы Qt доступны только для Qt mobility?
Записан
Bepec
Гость
« Ответ #5 : Сентябрь 11, 2012, 21:00 »

Хех и такие есть? незнал, незнал.
И соответственно ответить не смогу Улыбающийся
Записан
V1KT0P
Гость
« Ответ #6 : Сентябрь 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
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Сентябрь 11, 2012, 21:51 »

2V1KT0P: надо тебе выдать звание «гугломистр» Веселый
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
lighting
Гость
« Ответ #8 : Сентябрь 12, 2012, 10:37 »

А зачем именно поверх квадротов-виджетов?

Почему не пусть будет виджет, на к-м я буду буду ставить виджет-квадраты ?
Ну чтобы один раз переопределять mouseEvent а не для каждого квадрата. Хотя это конечно не аксиома, как тебе удобнее так и делай.
Записан
carhun
Гость
« Ответ #9 : Сентябрь 12, 2012, 21:15 »

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

И еще один вопрос. А как отличить квадрат-незакрашенный от квадрата-закрашеного? Т.е. вот ситуация, когда я положил нужный закрашенный квадрат в нужное место, а допустим кто-то решил его переставить, то как мне отличить  закрашенный от незкрашенного квадрата? Только перебрать, т.е. прверить если в той точке где должен быть незакрашеный квадрат, проверять если в этой строчке еще и закрашенный квадрат? Я так понимаю у виджетов там же нету той же оси Z, что бы по ней напр проверять...
Ну дык отнаследуйся и добавь две переменные, одну для типа, другую для цвета.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.158 секунд. Запросов: 23.