Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ivanstig29
0 / 0 / 0
Регистрация: 18.08.2016
Сообщений: 10
#1

Опять танки :D - C++

19.08.2016, 14:07. Просмотров 211. Ответов 3

Сами танки я нарисовал, нашел алгоритм который просчитывает столкновение снаряда и танка ,преграды нарисовал )
танк уже двигается
Не могу реализовать выстрел

код примерно такой :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void keyboard(unsigned char(key),int x,int y){
            
        switch(key){
 
  case 'w': 
     glClear(GL_COLOR_BUFFER_BIT);
      drawCircle(90,10,40,30);//рисует круг по координатам 90,10 
          glutSwapBuffers();
 
     break;
 
  }
 
      
    }
При нажатии на кнопку w круг появляется на долю секунду чтобы его было видно надо удерживать w
Как сделать чтобы круг рисовался при одиночном нажатии?
И реализовать его движения как?(при нажатии на эту же кнопку w запускаем timer который каждую секунду сдвигает снаряд на 1 пиксель??)
Опять же большое спасибо за помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2016, 14:07     Опять танки :D
Посмотрите здесь:

C++ Опять завал!!!
Опять конструкторы C++
C++ опять о шрифтах
Структуры: Вывести все танки с 1940-1950 г. чей калибр , больше 50 мм. или же просто больше 50 C++
C++ Опять интегралы....
C++ матрица опять (
Опять текстуры C++
Опять static C++
опять же строки C++
Опять файлы C++
Опять указатели C++
C++ Опять ошибка

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
622 / 326 / 34
Регистрация: 06.07.2013
Сообщений: 1,049
Завершенные тесты: 1
19.08.2016, 14:14     Опять танки :D #2
потому что не так все надо делать, пуля это объект, который создается по нажатию w, нужно создать объект класса пули, который умеет рисовать себя, что то типа

C++
1
2
3
4
5
6
7
8
9
10
11
12
class Bullet
{
    int x;
    int y;
 
public:
 
    void draw()
    {
        drawCircle(x,y,40,30);//рисует круг по координатам x,y
    }
}
создаем пулю, добавляем ее в список или массив (как удобнее), а когда рисуем игру - рисуем и весь список(или массив)

если надо обновлять координаты, делаем это не там где игра рисуется, а где обновляет всю свою логику, опять работаем со всем списком пуль, и двигаем их по направлению (которое можно создать в классе)
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2303 / 1019 / 232
Регистрация: 30.11.2013
Сообщений: 3,385
19.08.2016, 14:51     Опять танки :D #3
Ivanstig29, к выше сказанному - а по нажатию

C++
1
2
3
case 'k':
     container.push_back( new Bullet( from, to, speed ) );
break;
Ivanstig29
0 / 0 / 0
Регистрация: 18.08.2016
Сообщений: 10
19.08.2016, 14:55  [ТС]     Опять танки :D #4
спасибо,буду разбираться
Yandex
Объявления
19.08.2016, 14:55     Опять танки :D
Ответ Создать тему
Опции темы

Текущее время: 05:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru