|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.03.2010, 21:06 | #1 |
Форумчанин
Регистрация: 25.06.2009
Сообщений: 163
|
Объекты в игре
Здравствуйте. Тут возник такой вопрос. Я делаю игру, и она организована так: есть фон, который накладывается одной большой картинкой, есть текстуры, которые собираются из маленьких квадратиков и т.д. Но вот дело дошло до объектов, над которыми нужно производить определенные действия, в том числе и при нажатии на них мышкой.
И было решено создать класс для этих объектов. Чтобы заиметь для них событие OnClick, родительским классом был взят TControl. Но вот настало время создания и вывода этих объектов на форму, и тут возникли проблемы. Я создавал объекты прямо с формой, на отдельном слое, в двумерном массиве, как и текстуры, и их количество было равным количеству ячеек карты. Но проблема возникла такая: если создавать много объектов (например, даже в карте 50х50), то при загрузке игры она очень долго не показывается на экран, в то время, как какие-то операции в системе все-же производит. Быть может, она даже пытается загрузить объекты. Я уменьшил количество ячеек до 30х30, и игра загрузилась за 5 сек., но потом стала сильно тормозить. Что же делать мне? Подскажите. И я догадываюсь, что создавать столько объектов очень глупо, но вот почему - не знаю. |
03.03.2010, 21:11 | #2 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Ошибка в циклах, ищите многократные действия, которые проделываются на каждом шаге цикла, вместо того, чтобы выполниться один раз. Показывайте исходник, если нужна оперативная помощь, разбирающихся тут много.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
03.03.2010, 21:15 | #3 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Не надо делать игровые объекты, которые можно разместить на форме. Лучше сделайте свой собственный класс, не имеющий к TControl никакого отношения, а всецело заточенный только под реализацию игровой модели. Графику выводите на Canvas, а клики считывайте с формы, потом определяйте, какой объект находится в координатах точки клика и вызывайте функцию OnClick этого объекта.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Автоматизация в игре | axumac | Свободное общение | 3 | 22.01.2009 20:37 |
Звуки к игре | Crivel | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 8 | 07.09.2008 23:40 |
OnMouseDown в игре. | Titan123 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 10 | 29.07.2008 13:10 |
Препятствия в игре. | Манжосов Денис :) | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 07.06.2008 14:14 |
Вопрос по игре!!! | Ыть | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 28.03.2008 09:02 |