Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2013, 23:24   #1
LordJohn
 
Регистрация: 06.09.2012
Сообщений: 4
Печаль Нажатие клавиш OpenGL (c++)

Я написал каркас к игре: красный квадрат разъезжает по зелёному полю и стреляет синими точками. Так вот, проблема в том, что квадрат может ехать вперёд направо и одновременно стрелять. Если же квадрат едет вперёд налево, то он не реагирует на выстрел, т. е. либо кружиться налево и стрелять либо вперёд и налево. Аналогичная ситуация с задним ходом. Назад налево и стрелять - пожалуйста, а назад направо и стрелять - нет. Никак не могу найти, в чём подвох. Свой индусский код выкладываю архивом, ибо он состоит из 10 частей.
Так же выкладываю саму игру.
Вложения
Тип файла: zip Tanks1.2.zip (3.8 Кб, 12 просмотров)
Тип файла: zip Game.zip (16.5 Кб, 14 просмотров)
LordJohn вне форума Ответить с цитированием
Старый 15.03.2013, 16:54   #2
clearbluesky
 
Регистрация: 03.12.2012
Сообщений: 9
По умолчанию

Щас посмотрю ради интереса, хотя и не особо шарю )

Но смахивает на то, что в логике твоих "танчиков" ошибки есть.
clearbluesky вне форума Ответить с цитированием
Старый 15.03.2013, 17:01   #3
clearbluesky
 
Регистрация: 03.12.2012
Сообщений: 9
По умолчанию

Щас по мере буду отписывать, а то на работе делать стало нечего ))

(как бы не влетело)

У тебя display - функция - вызывается раз в сколько-то времени.
И в ней каждый раз создается новый painter - уже странно
clearbluesky вне форума Ответить с цитированием
Старый 15.03.2013, 17:09   #4
clearbluesky
 
Регистрация: 03.12.2012
Сообщений: 9
По умолчанию

void Bullet::tick()
{
x += 10 * sin(angle);
y += 10 * cos(angle);
}

Этим чего добивался, вообще непонятно )
clearbluesky вне форума Ответить с цитированием
Старый 15.03.2013, 17:20   #5
clearbluesky
 
Регистрация: 03.12.2012
Сообщений: 9
По умолчанию

Программа кстати не стала твоя запускаться - нет dll-ки какой-то.

Но код вообще очень странный.

Попробуй еще раз чтоле с нуля все перепиши. Подумай как следует, что такое танк, пуля. Как они себя ведут (должны вести).

Ну x = 10 * cos(чего-то) - это она должна туда-сюда метаться, причем самым странным образом.

(если я правильно вообще задумку понял)

Наверное, координаты пули должны от координат танка зависеть изначально, а дальше уже сами по-себе меняться по определенному закону.
Т.е. там должно быть что-то типа x += const, y += const. А как выходит за пределы экрана - уничтожай объект.

Короче, не ленись продумать как следует.

Успехов.
clearbluesky вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажатие клавиш C++ Noyabr Помощь студентам 0 07.04.2012 12:54
Нажатие клавиш cargo29 Общие вопросы Delphi 9 12.03.2011 11:08
Нажатие клавиш свр Общие вопросы по Java, Java SE, Kotlin 2 26.09.2010 18:58
Нажатие клавиш VanDerKeen Win Api 1 03.06.2007 21:13