Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

19.08.2016, 14:07. Просмотров 265. Ответов 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 пиксель??)
Опять же большое спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2016, 14:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Опять танки :D (C++):

Структуры: Вывести все танки с 1940-1950 г. чей калибр , больше 50 мм. или же просто больше 50 - C++
Названия структуры: Танки. Ввод данных такой: Названия Год выпуска Калибр Скорость Вывести:

матрица опять ( - C++
В данной действительной квадратной матрице порядка n, найти наибольший по модулю элемент. Получить квадратную матрицу порядка n - 1 путем...

Опять интегралы.... - C++
Написать программу для вычисления значения определенного интеграла вида с заданной точностью R=0.0001. Для вычислений используется...

Опять указатели - C++
Здравствуйте. Изучаю эти туториалы: http://www.rastertek.com/dx11tut03.html В конце есть упражнение: конфигурацию видеокарты вывести в...

Опять static - C++
Есть два файла. ////////////////////////////////////// //main.cpp class SomeClass { public: SomeClass(REC*...

опять же строки - C++
в общем дана строка состоящая из слов разделенных пробелами, нужно поменять местами первое и последнее слова и вывести получившуюся строку...

3
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,068
Завершенные тесты: 1
19.08.2016, 14:14 #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
    }
}
создаем пулю, добавляем ее в список или массив (как удобнее), а когда рисуем игру - рисуем и весь список(или массив)

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

C++
1
2
3
case 'k':
     container.push_back( new Bullet( from, to, speed ) );
break;
1
Ivanstig29
0 / 0 / 0
Регистрация: 18.08.2016
Сообщений: 10
19.08.2016, 14:55  [ТС] #4
спасибо,буду разбираться
0
19.08.2016, 14:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2016, 14:55
Привет! Вот еще темы с ответами:

Опять файлы - C++
Если, я открыл файл записал туда данные, а потом пытаюсь читать эти данные до тех пор пока не встретится конец файл. Это будет корректно?...

опять о шрифтах - C++
приветствую. Имеется программа из учебника: #include <iostream> #include <clocale>; using namespace std; int main() { ...

Опять текстуры - C++
Я,наверное,всех уже достал с текстурами)Но всё же вот фрагменты кода рисовка цилиндра с текстурой glEnable(GL_TEXTURE_2D); barkn=0; ...

Опять конструкторы - C++
допустим есть два класса. template <typename T = int> class SkillBase { public: // cd SkillBase(T val = 0) : m_value(val) {} ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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