Название: Простенький редактор пиксельных сценок Отправлено: enchantner от Май 29, 2012, 23:15 Пишу небольшой редактор пиксельных сценок, который потом планирует перерости в редактор уровней для игрушки. С помощью QGraphicsScene->addLine() нарисовал изометрическую сетку примерно такого вида: http://img442.imageshack.us/img442/7876/gridr.png
Хочу реализовать вот что - сделать курсор в виде такого же ромбика, только красного и чтобы он двигался ("прыгал") именно по этим квадратикам сообразно с движениями мышки. Кто играл в Fallout 1-2 - поймет, что я имею в виду. Вопрос - как это реализовать? Повесить рисовалку на эвент движения мыши и каждый раз перерисовывать весь QGraphicsScene? Или есть более умный вариант? Код пишу на питоне, поэтому не привожу, но пойму и сишный, лишь бы подсказали. Название: Re: Простенький редактор пиксельных сценок Отправлено: V1KT0P от Май 29, 2012, 23:52 Нет конечно, перерисовывай только изменяющиеся части.
Название: Re: Простенький редактор пиксельных сценок Отправлено: enchantner от Май 30, 2012, 00:19 И как это сделать? Можно небольшой пример кода? Я так понимаю, рисовать его все равно с помощью addLine(), а как обновлять только этот фрагмент?
Название: Re: Простенький редактор пиксельных сценок Отправлено: andrew.k от Май 30, 2012, 00:42 И как это сделать? Можно небольшой пример кода? Я так понимаю, рисовать его все равно с помощью addLine(), а как обновлять только этот фрагмент? так ты ж ничего не рисуешь. Сцена сама рисует. Она и разберется, что надо обновлять, что нет.Тебе надо определить в области какого ромба находится курсор. Если текущий ромб изменился то посчитать координаты нового ромба и добавить цветной ромб используя третий параметр. QGraphicsPolygonItem * QGraphicsScene::addPolygon ( const QPolygonF & polygon, const QPen & pen = QPen(), const QBrush & brush = QBrush() ) Сохранить указатель на айтем. Теперь при переходе мыши на новый ромб, удалять старый айтем добавлять новый. Рисованием будет заниматься сцена. Название: Re: Простенький редактор пиксельных сценок Отправлено: Bepec от Май 30, 2012, 06:52 adnrew.k Дело глаголет. Тебе не нужно рисовать курсор мышки. Тебе нужно лишь определить, над каким ромбом находится курсор и перерисовать его ;)
Fallout. Война... Война никогда не меняется :D Название: Re: Простенький редактор пиксельных сценок Отправлено: V1KT0P от Май 30, 2012, 08:06 Fallout. Война... Война никогда не меняется :D Надо под программинг переиначить как-то. Типа такого: "С++. Программирование... Программирование никогда не меняется".Название: Re: Простенький редактор пиксельных сценок Отправлено: Bepec от Май 30, 2012, 09:16 Не получится ;) Программирование то как раз меняется ;)
Название: Re: Простенький редактор пиксельных сценок Отправлено: navrocky от Май 30, 2012, 11:52 Теперь при переходе мыши на новый ромб, удалять старый айтем добавлять новый. Я бы даже не удалял и не создавал, а просто изменял бы координаты этого ромба.Рисованием будет заниматься сцена. Название: Re: Простенький редактор пиксельных сценок Отправлено: Bepec от Май 30, 2012, 12:01 Угу. Правильное замечание :)
|