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

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

Восстановить пароль Регистрация
 
Ivanstig29
0 / 0 / 0
Регистрация: 18.08.2016
Сообщений: 10
19.08.2016, 14:07     Опять танки :D #1
Сами танки я нарисовал, нашел алгоритм который просчитывает столкновение снаряда и танка ,преграды нарисовал )
танк уже двигается
Не могу реализовать выстрел

код примерно такой :
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++
Структуры: Вывести все танки с 1940-1950 г. чей калибр , больше 50 мм. или же просто больше 50 C++
C++ Опять интегралы....
C++ матрица опять (
Опять static C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 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
2139 / 972 / 223
Регистрация: 30.11.2013
Сообщений: 3,241
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
Ответ Создать тему

Метки
С++ для начинающих
Опции темы

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