|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.09.2011, 14:23 | #1 |
Форумчанин
Регистрация: 23.08.2011
Сообщений: 171
|
Стрельба Игрушка 2D
Почитал немного про Canvas, и решил сделать 2D выживалку (Ну это в будущем что получится). Сейчас это image на котором есть картинка игрока, с помощью клавишь можно двигаться. Вобщем, как лучше сделать стрельбу? Ведь снарядов может быть 10, а может быть и 1500 одновременно. Покачто я сделал класс Bullets
Код:
Код:
Код:
Каждый день узнаю новое...
|
28.09.2011, 15:31 | #2 |
Люблю жизнь
Форумчанин
Регистрация: 01.12.2009
Сообщений: 193
|
Нельзя использовать функцию free, это для указателей (Pointer'ов). И вообще, создай список, а не массив.
Код:
Код:
Не стыдно не уметь, стыдно не учиться.
|
28.09.2011, 15:33 | #3 |
Люблю жизнь
Форумчанин
Регистрация: 01.12.2009
Сообщений: 193
|
И измени параметры пули, например нельзя для каждой пули загружать свою картинку (BullModel), это скажется на производительности. Такие общие данные надо указывать 1 раз и применять во время прорисовки для всех пуль. Во вложении пример использования списков. Смотри всё, что касается Cloud (это облака из моей старой игры). Облака создаются, перемещаются до координаты x=2000 и удаляются.
Для удобства создай тип данных вектор (в моём примере это cpVect из модуля uVect). Функция ssprite_draw из движка omega, на неё не смотри, в этом месте будут твои процедуры рисования картинки на канве
Не стыдно не уметь, стыдно не учиться.
Последний раз редактировалось Андрей 93; 28.09.2011 в 15:40. |
28.09.2011, 15:59 | #4 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
При всём уважении, Андрей 93, не стоит утверждать так категорично.
ТС использует классы и им как раз надо делать Free. Если захочет списком, то сделает списком, на всякий случай стандартная реализация списка указателей (облеченная в класс) по-моему, лежит в модуле Contnrs. Данные вроде tbitmap стоит конечно хранить централизованно, но вот иметь ссылку на экземпляр битмапа нисколько не зазорно, поэтому ТС, могу посоветовать вот что: Создайте некое хранилище графических данных, по первости может сойти массив или даже глобальная переменная (но я советую централизовать и сделать хранилище тоже где-то в классе, доступ к графике в котором осуществляется по идентификатору, в качестве которого можно использовать перечислимый тип или ещё что-то такое) при создании пули не надо писать Код:
Код:
Ну и главное )) по поводу почему происходят креши: Код:
НО я советую пересмотреть логику работы и сделать как-то умнее, например : Код:
|
28.09.2011, 17:16 | #5 |
Форумчанин
Регистрация: 23.08.2011
Сообщений: 171
|
Андрей 93 и Phomm, спасибо за ответы, для себя извлек много полезного.
Каждый день узнаю новое...
|
28.09.2011, 17:19 | #6 |
Форумчанин
Регистрация: 23.08.2011
Сообщений: 171
|
Вобщем вот мой первый набросок. Ужас конечно, но чтото же нужно иметь для начала Вобщем у меня назрел вопрос, Как видите в программе модель симпатичного уродца, которым мы управляем спокойно проходит сквозь Эллипс рядом с центром игрового поля. Как сделать чтобы нельзя было пройти сквозь него? Я имею ввиду, что этих эллипсов может быть хоть 100 на игровом поле.
Управление: На стрелки ходить на пробел стрелять.
Каждый день узнаю новое...
|
28.09.2011, 18:23 | #7 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
А теперь попробуйте запустить игру и не трогая стрелок просто нажать на пробел
Invalid floating operator, причем очень жестоким образом
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
28.09.2011, 18:54 | #8 |
Форумчанин
Регистрация: 23.08.2011
Сообщений: 171
|
Блин Просто когда клавишу (клавишу-Стрелку, не пробел) нажмешь, игроку устанавливается "статус" (куда именно он смотрит, если вверх то статус 1 и т.д.). А при старте статус не определен забыл добавить Вот и ошибка!)
Каждый день узнаю новое...
|
28.09.2011, 19:01 | #9 |
Падаван
Пользователь
Регистрация: 23.09.2011
Сообщений: 98
|
Попробовал то что вы рекомендовали результат ужасный))) Не получается выключить программу)
............Сила воли ключ идеальности...........
|
28.09.2011, 19:25 | #10 | |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
Цитата:
Вы случайно лампочку в рот запихнуть не пытались? )))
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Игрушка | madkot | Помощь студентам | 2 | 08.06.2011 19:05 |
Графика (стрельба из пушки по цели) перевести код с Турбопаскаля в Pascal ABC | DANTES68 | Помощь студентам | 0 | 07.04.2011 22:27 |
Игрушка на С/С++ | jewel | Помощь студентам | 2 | 28.11.2010 23:10 |
Игрушка | Nester | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 4 | 15.01.2009 19:02 |