Ir para conteúdo
Entre para seguir isso  
Baxnie2

Jogo de tiro

Recommended Posts

Baxnie2    0
Baxnie2

Bem fiz um joguinho de tiro (Incompleto)

 

Ele tem High Score

Voce pode se mover com limite

Pode atirar e tem menu Scores e vidas

Tbm tem power up q vc atira + forte lol

E piska menos o/

Tem 2 inimigos que atiram

 

Qndo eu edita dnv vo coloka pra mata os inimigos e ganha score e pode morre e perde vida ateh da game over =X

 

Code: EDITED

 

#include <stdio.h>
#include <conio.h>
#include <windows.h>

#define KEYDOWN(key) GetKeyState(key) & 0x80

bool Die = false,ATMenu = true;
int ScoreT = 0,PLife = 5;
HANDLE ConHan = GetStdHandle(STD_OUTPUT_HANDLE);
int CreateMenuLine()
{
   COORD MenuLine;
   bool CreateMenuLine;
   MenuLine.X = 15;
   MenuLine.Y = 0;//Menu Line Y Reset
   CreateMenuLine = true;
   while(CreateMenuLine)
   {
       if(MenuLine.Y <=24)
       {
           SetConsoleCursorPosition(ConHan,MenuLine);
           SetConsoleTextAttribute(ConHan,FOREGROUND_GREEN|FOREGROUND_INTENSITY);
           printf("|");
           MenuLine.Y++;
       }
       else
       {
           CreateMenuLine = false;
       }
   }
}
int CreateMenuInGame()
{
   COORD ScorePos;
   //Create Menu
   ScorePos.X = 0;
   ScorePos.Y = 0;
   SetConsoleCursorPosition(ConHan,ScorePos);
   SetConsoleTextAttribute(ConHan,FOREGROUND_GREEN|FOREGROUND_INTENSITY);
   printf("Score: %d\nLifes: %d",ScoreT,PLife);
}
void Playing(char *PName)
{
   COORD PPos,E1Pos,E2Pos,PowerPos,FPos,E1FPos,E2FPos;
   srand(GetTickCount() % GetCurrentThreadId());
   int FTimer = 0,PowerTimer = 0,PowerMulti = 1,Shot = 1,E1Timer = 0,E2Timer = 0;
   bool InGame = true,FStatus = true,Playing,PowerShot = false,E1Vis,E2Vis,E1Fire,E2Fire,E1StartW = false,E2StartW = false,C1Fire = false,C2Fire = false,E1F = true,E2F = true;
   while(InGame)
   {
       PPos.X = 40;//Initial player Pos X
       PPos.Y = 24;//Initial player Pos Y
       PowerPos.X = 0;
       PowerPos.Y = 0;
       SetConsoleCursorPosition(ConHan,PPos);
       SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
       printf("/|\\");//Player ¬¬ LOL
       CreateMenuInGame();
       CreateMenuLine();
       E1Vis = true;
       E2Vis = true;
       Playing = true;
       while(Playing)
       {
           if(E1Vis == true && E1StartW == false)
           {
               E1Pos.X = (rand() % 52) + 18;
               E1Pos.Y = 0;
               SetConsoleCursorPosition(ConHan,E1Pos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf("\\|/");
               E1Vis = false;
               E1Fire = true;
               E1StartW = true;
           }
           if(E2Vis == true && E2StartW == false)
           {
               E2Pos.X = (rand() % 52) + 18;
               E2Pos.Y = 0;
               SetConsoleCursorPosition(ConHan,E2Pos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf("\\|/");
               E2Vis = false;
               E2Fire = true;
               E2StartW = true;
           }
           if(E1Fire == true && E1F == true)
           {
               E1FPos.X = E1Pos.X + 1;
               E1FPos.Y = E1Pos.Y + 1;
               SetConsoleCursorPosition(ConHan,E1FPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf("|");
               E1Fire = false;
               C1Fire = true;
               E1F = false;
           }
           if(E2Fire == true && E2F == true)
           {
               E2FPos.X = E2Pos.X + 1;
               E2FPos.Y = E2Pos.Y + 1;
               SetConsoleCursorPosition(ConHan,E2FPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf("|");
               E2Fire = false;
               C2Fire = true;
               E2F = false;
           }
           if(C1Fire == true)
           {
               SetConsoleCursorPosition(ConHan,E1FPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf(" ");
               E1FPos.Y++;
               SetConsoleCursorPosition(ConHan,E1FPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf("|");
           }
           if(C2Fire == true)
           {
               SetConsoleCursorPosition(ConHan,E2FPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf(" ");
               E2FPos.Y++;
               SetConsoleCursorPosition(ConHan,E2FPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf("|");
           }
           if(E1FPos.Y >= 24)
           {
               SetConsoleCursorPosition(ConHan,E1FPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf(" ");
               E1Fire = true;
               C1Fire = false;
           }
           if(E2FPos.Y >= 24)
           {
               SetConsoleCursorPosition(ConHan,E2FPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf(" ");
               E2Fire = true;
               C2Fire = false;
           }
           if(E1StartW == true && E1Timer >= 100)
           {
               SetConsoleCursorPosition(ConHan,E1Pos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf("   ");
               E1Pos.Y++;
               SetConsoleCursorPosition(ConHan,E1Pos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf("\\|/");
               E1Timer = 0;
           }
           if(E2StartW == true && E2Timer >= 100)
           {
               SetConsoleCursorPosition(ConHan,E2Pos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf("   ");
               E2Pos.Y++;
               SetConsoleCursorPosition(ConHan,E2Pos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf("\\|/");
               E2Timer = 0;
           }
           if(E1Pos.Y >= 24)
           {
               SetConsoleCursorPosition(ConHan,E1Pos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf("   ");
               E1Vis = true;
               E1StartW = false;
               E1F = true;
           }
           if(E2Pos.Y >= 24)
           {
               SetConsoleCursorPosition(ConHan,E2Pos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
               printf("   ");
               E2Vis = true;
               E2StartW = false;
               E2F = true;
           }
           if(PowerTimer >= PowerMulti * 10000 && PowerShot == false)
           {
               PowerTimer = 0;
               PowerPos.X = (rand() % 52) + 18;
               PowerPos.Y = 0;
               PowerMulti++;
               SetConsoleCursorPosition(ConHan,PowerPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
               printf("O");
               PowerShot = true;
           }
           if(PowerShot == true && PowerTimer >= 200)
           {
               SetConsoleCursorPosition(ConHan,PowerPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
               printf(" ");
               PowerPos.Y++;
               PowerTimer = 0;
               SetConsoleCursorPosition(ConHan,PowerPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
               printf("O");
           }
           if(PowerPos.X == PPos.X + 1 && PowerPos.Y == PPos.Y)
           {
               Shot = 2;
               ScoreT += 200;
               PowerPos.X = 0;
               CreateMenuInGame();
               PowerMulti++;
               PowerTimer = 0;
               SetConsoleCursorPosition(ConHan,PPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
               printf("/|");
               PowerShot = false;
           }
           if(PowerPos.X == PPos.X + 2 && PowerPos.Y == PPos.Y)
           {
               Shot = 2;
               ScoreT += 200;
               PowerPos.X = 0;
               CreateMenuInGame();
               PowerMulti++;
               PowerTimer = 0;
               SetConsoleCursorPosition(ConHan,PPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
               printf("/|\\");
               PowerShot = false;
           }
           if(PowerPos.X == PPos.X && PowerPos.Y == PPos.Y)
           {
               Shot = 2;
               ScoreT += 200;
               PowerPos.X = 0;
               CreateMenuInGame();
               PowerMulti++;
               PowerTimer = 0;
               SetConsoleCursorPosition(ConHan,PPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
               printf("/");
               PowerShot = false;
           }
           if(PowerPos.Y >= 24 && PowerShot == true)
           {
               SetConsoleCursorPosition(ConHan,PowerPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
               printf(" ");
               PowerTimer = 0;
               PowerPos.Y = -1;
               PowerShot = false;
           }
           if(KEYDOWN(VK_LEFT))
           {
               if(PPos.X >= 18)
               {
                   SetConsoleCursorPosition(ConHan,PPos);
                   SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
                   printf("   ");
                   PPos.X--;
                   SetConsoleCursorPosition(ConHan,PPos);
                   SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
                   printf("/|\\");
               }
           }
           if(KEYDOWN(VK_RIGHT))
           {
               if(PPos.X <= 75)
               {
                   SetConsoleCursorPosition(ConHan,PPos);
                   SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
                   printf("    ");
                   PPos.X++;
                   SetConsoleCursorPosition(ConHan,PPos);
                   SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
                   printf("/|\\");
               }
           }
           if(KEYDOWN(VK_SPACE))
           {
               if(FStatus == true && Shot == 1)
               {
                   FPos.X = PPos.X + 1;
                   FPos.Y = PPos.Y - 1;
                   SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
                   SetConsoleCursorPosition(ConHan,FPos);
                   printf("|");
                   FStatus = false;
               }
               if(FStatus == true && Shot == 2)
               {
                   FPos.X = PPos.X;
                   FPos.Y = PPos.Y - 1;
                   SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
                   SetConsoleCursorPosition(ConHan,FPos);
                   printf("|||");
                   FStatus = false;
               }
           }
           if(KEYDOWN(VK_ESCAPE))//Sair
           {
               Playing = false;
           }
           if(FPos.Y >= 1 && FStatus == false && FTimer >= 100 && Shot == 1)//Tiro andando 1
           {
               SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
               SetConsoleCursorPosition(ConHan,FPos);
               printf(" ");
               FPos.Y--;
               FTimer = 0;
               SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
               SetConsoleCursorPosition(ConHan,FPos);
               printf("|");
           }
           if(FPos.Y >= 1 && FStatus == false && FTimer >= 100 && Shot == 2)//Tiro andando 2
           {
               SetConsoleTextAttribute(ConHan,0|FOREGROUND_RED|FOREGROUND_INTENSITY);
               SetConsoleCursorPosition(ConHan,FPos);
               printf("   ");
               FPos.Y--;
               FTimer = 0;
               SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
               SetConsoleCursorPosition(ConHan,FPos);
               printf("|||");
           }
           if(FPos.Y == 0)//Limpar tiro da tela
           {
               SetConsoleCursorPosition(ConHan,FPos);
               SetConsoleTextAttribute(ConHan,FOREGROUND_RED|FOREGROUND_INTENSITY);
               printf("   ");
               FPos.Y = -1;
               FStatus = true;
           }
           Sleep(50);
           FTimer += 50;
           E1Timer += 50;
           E2Timer += 50;
           PowerTimer += 50;
       }
       InGame = false;
   }
}

int Menu()
{
   int menu;
   char *GetName;
   system("cls");
   printf("1 - Play\n2 - View High-Score\n3 - Exit\n\n>>> ");
   scanf("%d", &menu);
   system("color 0a");
   switch(menu)
   {
       case 1:
       {
           system("cls");
           printf("Enter your nickname: ");
           scanf("%s", &GetName);
           system("cls");
           system("color 02");
           Playing(GetName);
           if(Die = false)
           {
               ATMenu = false;
           }
           if(Die = true)
           {
               if(PLife > 0)
               {
                   PLife--;
                   Playing(GetName);
               }
               if(PLife == 0)
               {
                   PLife = 5;
                   ScoreT = 0;
               }
           }
           break;
       }
       case 2:
       {
           system("cls");
           printf("The best score was %d.",ScoreT);
           getch();
           break;
       }
       case 3:
       {
           ATMenu = false;
           break;
       }
       default:
       {
           printf("You must enter a valid option.");
           getch();
       }
   }
}
int LoadScore()
{
   FILE *Load = fopen("score.ini","r");
   if(!Load)
   {
       FILE *Create = fopen("score.ini","w");
       fprintf(Create,"0");
       fclose(Create);
   }
   else
   {
       fscanf(Load,"%d",&ScoreT);
       fclose(Load);
   }
}
int main()
{
   system("Color 0a");
   SetConsoleTitle("Burst Shot");
   LoadScore();
   while(ATMenu)
   {
       Menu();
       system("cls");
       system("color 0a");
   }
   for(int x=5;x>0;x--)
   {
       printf("Thank you for playing Burst Shot.\nThis program was made by Bax.\n\n");
       printf("This window will close in %d seconds.",x);
       Sleep(1000);
       system("cls");
   }
   return 0;
}

 

 

Postem ai voces updates tirem os bugs sei la

Compartilhar este post


Link para o post
Compartilhar em outros sites
colt7r    0
colt7r

vo ver ele aqui ^^

 

@edit

seria melhor dizer que é um jogo de 'nave' pois só vi a minha no jogo

lol!

 

fora isso, tive que corrigir umas coisas aqui pra funcionar, tipo quebra de linha etc...

fora isso tudo blza =]

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Baxnie2    0
Baxnie2

Eh eu sei + tem mta coisa pra corrigi o Score ja tah funfando lgl to fzendo o menu fika rox agr so dps vo cria otros jogadores IA

Compartilhar este post


Link para o post
Compartilhar em outros sites
Thest    0
Thest

OMG!

Nem sei como vocês conseguem, mas pra mim, fazer isso, seria como esperar a morte e não conseguir resultado. =/

Onde que você aprendeu isso!?!?

 

~/Thest\~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Baxnie2    0
Baxnie2

simplesinho so pensa 1 pouco

olha a aula do dark igor (Bonus)

tem tudo la =P

Compartilhar este post


Link para o post
Compartilhar em outros sites
Thest    0
Thest

Ok, valew, vou dar uma olhada.

Eu dei uma passada rápida lá antes, mas não prestei atenção laugh.gif .

~~EDIT~~

Aew, to conseguindo, por enquanto só tem as funções de ir para aos lados e atirar, sem inimigo, ainda... E falta botar menu ^^.

 

~/Thest\~

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Baxnie2    0
Baxnie2

kkk demora msm + vale a pena pega esse meu ai ainda n fiz o sistema de colisao completo

Compartilhar este post


Link para o post
Compartilhar em outros sites
Thest    0
Thest

He he, eu sempre tenho o teu joguinho salvo caso eu tenha alguma dúvida. ^^

Tipo agora eu vou ver como se faz randon...

 

~/Thest\~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Baxnie2    0
Baxnie2

srand(GetTickCount() % GetCurrentThreadId());

 

E2Pos.X = (rand() % 52) + 18;

 

E2Pos.X = (numero entre 0 - 52) + 18 porque tem o menu ali dolado =P

Compartilhar este post


Link para o post
Compartilhar em outros sites
Thest    0
Thest

Aew, valew pelo rand, eu não entendi no post

do DarkIgor ohmy.gif. ^^

Mas, tipo o que que é

GetTickCount() % GetCurrentThreadId()?

E eu nunca entendi o sentido do srand. huh.gif

Edit:

Para aproveitar o post, alguém passa a

biblioteca conio.h, a minha nem existe. =/

 

~/Thest\~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Baxnie2    0
Baxnie2

tb n sei entao.. google it =) meu projeto agora eh igual ao do rikezenho to fazendo um jogo estilo tibia com as sprites dele aisuhaiueh ja tem o map.txt iushaiushae dps eu passo pra xml + por inquanto fika assim =X ja anda e talz =P

Compartilhar este post


Link para o post
Compartilhar em outros sites
Thest    0
Thest
tb n sei entao.. google it =)[/b]

Desde quando google é verbo? =D

Apartir de agora é!

 

Eu vo procura no google, depois edito pra rapa saber.

 

E boa sorte com o jogo. laugh.gif

Obs: Me passa as sources, hehe, como se eu

fosse entender. sad.gif

 

~/Thest\~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Thest    0
Thest
tb n sei entao.. google it =)[/b]

Desde quando google é verbo? =D

Apartir de agora é!

 

Eu vo procura no google, depois edito pra rapa saber.

 

E boa sorte com o jogo. laugh.gif

Obs: Me passa as sources, hehe, como se eu

fosse entender. sad.gif

 

~/Thest\~

Compartilhar este post


Link para o post
Compartilhar em outros sites
death26    0
death26

Eae, to fazendo um jogo estilo esse ai q ele passou o code. Ta ficando doido. Vc n pd atirar nem nada, vem vindo os tiros e vc tem q escapar. Chama Escape, ta quase pronto... Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites
death26    0
death26

Eae, to fazendo um jogo estilo esse ai q ele passou o code. Ta ficando doido. Vc n pd atirar nem nada, vem vindo os tiros e vc tem q escapar. Chama Escape, ta quase pronto... Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites
Raphael Lion    0
Raphael Lion

Hehehehe, que onda.

C++ para softwares é muito complicado, mais pra jogos é bem divertido...

Òtimo joguinho.

 

Parabéns.

 

Abraço,

Raphael Lion.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Raphael Lion    0
Raphael Lion

Hehehehe, que onda.

C++ para softwares é muito complicado, mais pra jogos é bem divertido...

Òtimo joguinho.

 

Parabéns.

 

Abraço,

Raphael Lion.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×