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

Танчики в graphics.h - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Из обычного в динамический массив http://www.cyberforum.ru/cpp-beginners/thread552180.html
Помогите пожалуйста переделать массив из обычного в динамический. #include "stdafx.h" #include <iostream>//i/o #include <conio.h> //getch #include <cmath> //fabs, abs #include "stdafx.h" #include <math.h> #include <tchar.h>
C++ STL Добрый вечер всем кто открыл эту вкладку! Надо реализовать кольцевой упорядоченный двозвязний список на STL + некоторые функции работы с ним (добавление нового, удаление, печать). Я реализовал все кроме кильцевости. Где-то читал, что нельзя это сделать. Но уверен - выход есть. Помогите))) #include "stdafx.h" #include <iostream> #include <algorithm> #include <list> http://www.cyberforum.ru/cpp-beginners/thread552143.html
C++ Течёт память рекой
Не могу понять в чём проблема. Есть класс CControl, от него есть наследники CInput и CButton. Просто создание объектов типа CButton и CInput не возникает утечек памяти, использование функции Clone для получения копии объекта (и последующее освобождение памяти через delete) тоже проблем не возникает, а вот когда возникает необходимость хранить объекты наследники CControl в классе CWindow в списке...
Системы счисления C++
Задано положительное действительное число up в системе счисления с основанием p с фиксированной точкой, и основание q (p, q ≠ 2, 8, 10, 16). Требуется: 1. Перевести число up в систему счисления с основанием q (при проверке работы программы числа up и q задаются преподавателем). 2. Перевести число up в 32-разрядный двоичный код, после чего это число с по-мощью разбиения на тетрады (т.е. на...
C++ Списки: функции для работы со списками http://www.cyberforum.ru/cpp-beginners/thread552121.html
Помогите пожааааааалуйста с задачками!!!! ;) ОПИШИТЕ ФУНКЦИИ ТИПОВЫХ ОПЕРАЦИЙ С СПИСКАМИ: 1. Функция AddHead (int d) добавление узла в голову списка; 2. Функция AddEnd (int d) добавление узла в конец списка; 3. Функция ShowList() вывод списка на экран; 4. Функция Search (int d) поиск узла с заданным значением в некотором поле данных; 5. Функция FindNode (int n) поиск узла с заданным...
C++ Итерационные циклы Написать программу вычисления значения функции, заданной в виде ряда, с погрешностью епсилон> 0,0001 п(пи)=3+4*(1/2*3*4 - 1/4*5*6 + 1/6*7*8 -....) Напишите пожалуйста, нужно для будущего авиации))) подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
19.04.2012, 01:19     Танчики в graphics.h
Круто. Вспоминаю, как тоже когда-то начинал с танчиков в досе.
Ты б хоть комментарии какие написал: где у тебя координаты танка, где координаты снаряда...
Я помню, что заводил массив структур "пули", каждая структура хранила координаты и направление полёта каждой пули.
соответственно при выстреле пуля добавлялась в массив и всё. А в главном цикле я обновлял координаты пуль каждый кадр, совершенно отдельно от танков и нажатий клавиш.
а с graphics.h работать очень даже просто. У тебя ж Borland C++ 3.1 for DOS среда, верно?

Добавлено через 11 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void GraphInit()
 {
 int gdriver = VGA, gmode=VGAHI, errorcode;//640x480
 initgraph(&gdriver, &gmode, "");
 errorcode = graphresult();
 if (errorcode != grOk)
  {
  printf("Graphics error: %s\n", grapherrormsg(errorcode));
  printf("Press any key to halt:");
  getch();
  exit(1);
  }
 }
И всё. Если проверку ошибок пропустить - вообще две строчки будет.

Добавлено через 9 минут
Сама библиотека graphics.h позволяет рисовать точки, линии, прямоугольники, эллипсы.
поэтому танк рисуешь либо каждый раз функцией:
C
1
2
3
4
5
void draw_tank(int x0, int y0){
setcolor(5);
bar(x0+12, y0+12, x0-12, y0-12);//прямоугольник - корпус
/////.........и.т.д. круги, линии, точки
}
Либо функцией putimage()
которой надо передать указатель на массив пикселей, либо найди способ прочитать bmp файл под DOSом и соотв. заполнить массив пикселями и передать в putimage,
либо рисуй в начале программы танк с помощью void draw_tank и сохрани его пиксели в массиве с помощью getimage

Добавлено через 16 минут
По теме: выстрелы реализуй так(могут быть ошибки, давно под досом не работал)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
struct shell{
int x, int y;//координаты пули
int dx, dy;//скорость пули(приращение координат)
int side;//своя или чужая(на всякий случай)
int active;//0 чтобы удалить пулю
}shells[MAXSHELLS];
int last;//индекс последней
void update_game(){
for (int i=0; i<MAXSHELLS; i++)
if (shells[i].active){
  shells[i].x+=shells[i].dx;
  shells[i].y+=shells[i].dy;
 }
 
for (int i=0; i<MAXSHELLS; i++)
{/*проверка попаданий*/}
}
int main(){
int gamover=0;
int delay_t;
last=0;
init_stuff();
///???
while(!gamover){
delay_t=DELAY_GAME;
while(delay_t--)
if (kbhit)ch=getche();
}
switch(ch){
///.......
0: break;
///////
32: last=(last+1)%MAXSHELLS; shells[last].active=1; shells[last].x=x; ...y...dx=tank.dx...dy break;
 
}
ch=0;
update_game();
}
 
Текущее время: 23:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru