Oi gente,
tenho que fazer um jogo de uma nave q atira em objetos em um determinado espaço, e tenho duas duvidas
1° delimitei um espaço, mas quando a nave passa por ele, a nave apaga a delimitação e continua, como faço para a nave não passar essa delimitação?
2° qual função devo usar para fazer aparecer os objetos para a nave atirar neles?
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
void gotoxy (int x , int y )
{
COORD p = {0,0};
p.X = x; p.Y = y;
SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE),p);
}
void nave (int x, int y);
void rajada (int x, int y);
void rajada2 (int x, int y);
void rajada3 (int x, int y);
void rajada4 (int x, int y);
void main()
{
char tecla;
int x,y, vida,c;
tecla=0;
x=35;
y=30;
vida=10;
for(c=0;c<50;c++)
{ gotoxy(0,c);
printf("%c",219);
}
for(c=0;c<50;c++)
{ gotoxy(c,0);
printf("%c",219);
}
for(c=0;c<80;c++)
{ gotoxy(50,c);
printf("%c",219);
}
for(c=0;c<80;c++)
{ gotoxy(c,50);
printf("%c",219);
}
while (tecla!='x')
{
tecla = getch();
if (tecla=='a') x--;
if (tecla=='d') x++;
if (tecla=='s') y++;
if (tecla=='w') y--;
if (tecla=='1') rajada(x,y);
if (tecla=='2') rajada2(x,y);
if (tecla=='3') rajada3(x,y);
if (tecla=='4') rajada4(x,y);
nave (x,y);
gotoxy (0,0);
printf ("vida=%d", vida);
gotoxy (x+2,y-1);
printf(" ");
gotoxy (x+2,y+3);
printf(" ");
gotoxy (x+1,y+3);
printf(" ");
gotoxy (x+4,y+3);
printf(" ");
gotoxy (x+3,y+3);
printf(" ");
gotoxy (x+5,y+3);
printf(" ");
}
}
//subrotina nave
void nave( int x , int y)
{
system("color 0F");
gotoxy (x+2,y);
printf(" ^ ");
gotoxy (x+1,y+1);
printf(" ($) ");
gotoxy (x,y+2);
printf(" /___\\ ");
}
//subrotina das rajadas
void rajada (int x, int y)
{
system("color 8C");
int z;
for(z=3; z<30 ; z++)
{
gotoxy(x+2,y-z);
printf(" D ");
gotoxy(x+2,y-z+1);
printf(" ");
gotoxy(x,y-z<30);
printf(" ");
Beep(1000,30);
}
}
void rajada2 (int x, int y)
{
system("color 8D");
int c;
for(c=3; c<30 ; c++)
{
gotoxy(x+2,y-c);
printf(" O ");
gotoxy(x+2,y-c+2);
printf(" ");
gotoxy(x,y-c<30);
printf(" ");
Beep(3000,30);
}
}
void rajada3 (int x, int y)
{
system("color B");
int v;
for(v=3; v<30 ; v++)
{
gotoxy(x+2,y-v);
printf(" L ");
gotoxy(x+2,y-v+1);
printf(" ");
gotoxy(x,y-v<30);
printf(" ");
Beep(5000,30);
}
}
void rajada4 (int x, int y)
{
system("color 8E");
int b;
for(b=3; b<30 ; b++)
{
gotoxy(x+2,y-b);
printf(" A ");
gotoxy(x+2,y-b+1);
printf(" ");
gotoxy(x,y-b<30);
printf(" ");
Beep(8000,30);
}
}