Russian Qt Forum
Ноябрь 23, 2024, 17:11
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Реализация простенькой игры
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Реализация простенькой игры (Прочитано 5468 раз)
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
Гость
Re: Реализация простенькой игры
«
Ответ #1 :
Сентябрь 11, 2012, 09:09 »
Сделай каждый квадрат виджетом, плюс еще один виджет поверх всех их для отлавливания событий мыши и все дела.
Записан
carhun
Гость
Re: Реализация простенькой игры
«
Ответ #2 :
Сентябрь 11, 2012, 20:08 »
А зачем именно поверх квадротов-виджетов?
Почему не пусть будет виджет, на к-м я буду буду ставить виджет-квадраты ?
Записан
Bepec
Гость
Re: Реализация простенькой игры
«
Ответ #3 :
Сентябрь 11, 2012, 20:35 »
Я бы вообще тупо взял QLabel, задал им картинки и переопределил перетаскивание.
Дальше дело математики и paintEvent'a
Записан
carhun
Гость
Re: Реализация простенькой игры
«
Ответ #4 :
Сентябрь 11, 2012, 20:46 »
Цитата: Bepec от Сентябрь 11, 2012, 20:35
Я бы вообще тупо взял QLabel, задал им картинки и переопределил перетаскивание.
Дальше дело математики и paintEvent'a
Ага, спасибо...
А подскажите, а Bluetooth либы Qt доступны только для Qt mobility?
Записан
Bepec
Гость
Re: Реализация простенькой игры
«
Ответ #5 :
Сентябрь 11, 2012, 21:00 »
Хех и такие есть? незнал, незнал.
И соответственно ответить не смогу
Записан
V1KT0P
Гость
Re: Реализация простенькой игры
«
Ответ #6 :
Сентябрь 11, 2012, 21:05 »
Цитата: carhun от Сентябрь 11, 2012, 20:46
Цитата: Bepec от Сентябрь 11, 2012, 20:35
Я бы вообще тупо взял 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
Сообщений: 4747
Re: Реализация простенькой игры
«
Ответ #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
Гость
Re: Реализация простенькой игры
«
Ответ #8 :
Сентябрь 12, 2012, 10:37 »
Цитата: carhun от Сентябрь 11, 2012, 20:08
А зачем именно поверх квадротов-виджетов?
Почему не пусть будет виджет, на к-м я буду буду ставить виджет-квадраты ?
Ну чтобы один раз переопределять mouseEvent а не для каждого квадрата. Хотя это конечно не аксиома, как тебе удобнее так и делай.
Записан
carhun
Гость
Re: Реализация простенькой игры
«
Ответ #9 :
Сентябрь 12, 2012, 21:15 »
И еще один вопрос. А как отличить квадрат-незакрашенный от квадрата-закрашеного? Т.е. вот ситуация, когда я положил нужный закрашенный квадрат в нужное место, а допустим кто-то решил его переставить, то как мне отличить закрашенный от незкрашенного квадрата? Только перебрать, т.е. прверить если в той точке где должен быть незакрашеный квадрат, проверять если в этой строчке еще и закрашенный квадрат? Я так понимаю у виджетов там же нету той же оси Z, что бы по ней напр проверять...
Записан
V1KT0P
Гость
Re: Реализация простенькой игры
«
Ответ #10 :
Сентябрь 12, 2012, 21:25 »
Цитата: carhun от Сентябрь 12, 2012, 21:15
И еще один вопрос. А как отличить квадрат-незакрашенный от квадрата-закрашеного? Т.е. вот ситуация, когда я положил нужный закрашенный квадрат в нужное место, а допустим кто-то решил его переставить, то как мне отличить закрашенный от незкрашенного квадрата? Только перебрать, т.е. прверить если в той точке где должен быть незакрашеный квадрат, проверять если в этой строчке еще и закрашенный квадрат? Я так понимаю у виджетов там же нету той же оси Z, что бы по ней напр проверять...
Ну дык отнаследуйся и добавь две переменные, одну для типа, другую для цвета.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...