22 / 22 / 8
Регистрация: 05.01.2012
Сообщений: 282
|
||||||
1 | ||||||
Алгоритм движения объекта в 2D игре15.03.2014, 23:53. Показов 2799. Ответов 7
Метки нет (Все метки)
Здравствуйте! Захотелось написать какую то простенькую игру в 2D на C++, почитал статьи, научился рисовать в Canvas. Но столкнулся с багом, квадрат, которым я двигаю, двигается не корректно, он может двигаться в 4 направления от изначальной позиции, но только на 1 шаг хотя должен идти и дальше. Да и то, не удаляя свою прошлую позицию, только изначальная удаляется. Уже второй день ломаю себе голову, не могу найти причину, помогите разобраться.
Вот код: Кликните здесь для просмотра всего текста
0
|
15.03.2014, 23:53 | |
Ответы с готовыми решениями:
7
Направления движения движения кнопок в игре пятнашки Реализация движения в 2D игре на Unity3D Во время движения в игре мигает задний фон Слишком быстрое воспроизведение звука и движения в игре |
19.03.2014, 13:29 | 3 |
То бишь "PlayerClass Player;" надо объявлять глобально, а не внутри каждого обработчика. Должен быть всего один экземпляр класса PlayerClass в твоей программе. Ну, поначалу по крайней мере...
И не забываем про деструктор формы или событие OnClose, где нужно освобождать все, что навыделяли с помощью new в событии FormCreate или конструкторе формы...
1
|
22 / 22 / 8
Регистрация: 05.01.2012
Сообщений: 282
|
|
21.03.2014, 23:34 [ТС] | 4 |
BRcr, я уже смог сам разобраться в своей ошибке, все дело было в переменних х и у, которые были обьявлени в классе, а надо было их обьявить как глобальные переменные. Но все равно спасибо за внимание. А что там по поводу освобождения? Что именно надо освобождать?
Добавлено через 19 секунд И как именно? Добавлено через 16 секунд AntonChik, да, все дело было именно в х и у, спасибо.
0
|
22.03.2014, 06:51 | 5 | ||||||||||
Я правильно понимаю, что код сейчас выглядит как-то так?
А освобождать надо вот это:
1
|
22 / 22 / 8
Регистрация: 05.01.2012
Сообщений: 282
|
|
22.03.2014, 13:26 [ТС] | 6 |
BRcr, и как именно освобождать битмапи? И разве после закрития Программи они не очистятся?
Код сейчас виглядит иначе. Потом скину, как зайду с пк.
0
|
22.03.2014, 18:53 | 7 | |||||
И после закрытия и очистятся - но после завершения процесса, а не после закрытия формы. Если форма главная и единственная и если битмапы нужны все время, то можно и не освобождать... но в любом случае лучше взять себе за правило, выделил память - освободи ее, так будет меньше проблем в будущем. А еще лучше использовать std::auto_ptr или unique_ptr, если есть возможность.
Как освобождать, в любой книжке по с++ написано...
1
|
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
|
|
24.03.2014, 05:30 | 8 |
неверно мыслите. вообще остерегайтесь и старайтесь избегать глобальности.
правильнее оставить x,y в классе PlayerClass, а Player объявить в классе формы.
0
|
24.03.2014, 05:30 | |
24.03.2014, 05:30 | |
Помогаю со студенческими работами здесь
8
Можно ли установить колебания движения курсора в 2d игре? Как нарисована гибкая линия маршрута движения главного круглишка в игре Osmos? Передвижение объекта в игре Исследование движения объекта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |