Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Incalzire casa fara gaz/lemne

Incalzire in pardoseala etapizata

Suprataxa card energie?!

Cum era nivelul de trai cam din a...
 probleme cu ochelarii

Impozite pe proprietati de anul v...

teava rezistenta panou apa calda

Acces in Curte din Drum National
 Sub mobila de bucatarie si sub fr...

Rezultat RMN

Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...
 Lucruri inaintea vremurilor lor

Discuții despre TVR Sport HD.

Cost abonament clinica privata

Tremura toata, dar nu de la ro...
 

Space shooter

- - - - -
  • Please log in to reply
2 replies to this topic

#1
stefansws

stefansws

    New Member

  • Grup: Junior Members
  • Posts: 4
  • Înscris: 22.10.2018
as vrea sa fac un joc de tip space shooter in c++.
cum as putea face ca proiectilul de la naveta sa tot apara. adica n doar o data sa fie.FOLOSESC VISUAL STUDIO.
uite codul aici:


#include "pch.h"
#include <iostream>
#include <conio.h>
#include <Windows.h>
using namespace std;
bool GameOver;
int inaltime;
int latime;
struct Obiecte
{
int x;
int y;
};
Obiecte nava;
Obiecte glont;

enum Directii
{
STOP,
LEFT,
RIGHT,

};
Directii dir;
enum Directii2
{
UP,
};
Directii2 dir2;

void Startup()
{
GameOver = false;
latime = 31;
inaltime = 15;
nava.x = 15;
nava.y = 14;
dir = STOP;
dir2 = UP;
glont.x = nava.x;
glont.y = nava.y;
}

void Draw()
{
system("cls");
for (int i = 0;i < latime;i++)cout << "#";
cout << endl;
for (int i = 0;i < inaltime;i++)
{
for (int j = 0;j < latime;j++)
{
if (j == 0 || j == latime-1 )cout << "#";
else if (j == nava.x && i == nava.y)cout << "O";
else if (j == glont.x && i == glont.y)cout << "|";
else cout << " ";
}
cout << endl;
}
for (int i = 0;i < latime;i++)cout << "#";
}
void Input()
{
if (_kbhit())
{
switch (_getch()) {
case 'a': dir = LEFT;break;
case 'd': dir = RIGHT;break;
}
}
}
void Logic()
{
switch (dir)
{
case LEFT:nava.x--;
break;
case RIGHT:nava.x++;
break;
}
switch (dir2)
case UP:glont.y--;
}
int main()
{
Startup();
while (!GameOver)
{
Input();
Logic();
Draw();
Sleep(50);

}
}

#2
A10Warthog

A10Warthog

    Member

  • Grup: Moderators
  • Posts: 902
  • Înscris: 12.11.2017
Asta s-ar putea să te ajute, că am văzut că ai deschis thread și cu snake.

 stefansws, on 23 octombrie 2018 - 20:29, said:

cum as putea face ca proiectilul de la naveta sa tot apara. adica n doar o data sa fie.FOLOSESC VISUAL STUDIO.

Adică fiecare proiectil să aibă un lifespan, care începe de la input (keydown) și se termină când proiectilul lovește ceva sau iese din aria de joc? :)

P.S: Folosește IDEOne sau ceva de genul când postezi cod. Sau măcar code tags.

#3
stefansws

stefansws

    New Member

  • Grup: Junior Members
  • Posts: 4
  • Înscris: 22.10.2018

 A10Warthog, on 23 octombrie 2018 - 21:00, said:

Asta s-ar putea să te ajute, că am văzut că ai deschis thread și cu snake.



Adică fiecare proiectil să aibă un lifespan, care începe de la input (keydown) și se termină când proiectilul lovește ceva sau iese din aria de joc? Posted Image

P.S: Folosește IDEOne sau ceva de genul când postezi cod. Sau măcar code tags.
ok...ms de sfat. ce as putea face sa vina de sus niste obstacole in pozitii x random?(am incercat eu sa fac ceva dar nu imi iese...)
daca vrei sa vezi ce am adaugat,

// ConsoleApplication16.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include "pch.h"
#include <iostream>
#include <conio.h>
#include <Windows.h>
using namespace std;
bool GameOver;
int inaltime;
int latime;
struct Obiecte
{
int x;
int y;
};
Obiecte nava;
Obiecte glont;
Obiecte obstacol[999];

enum Directii
{
STOP,
LEFT,
RIGHT,
};
Directii dir;
enum Directii2
{

UP,
};
Directii2 dir2;

void Startup()
{
GameOver = false;
latime = 31;
inaltime = 15;
nava.x = 15;
nava.y = 14;
dir = STOP;
dir2 = UP;
glont.x = nava.x;
glont.y = nava.y;
}

void Draw()
{
system("cls");
for (int i = 0;i < latime;i++)cout << "#";
cout << endl;
for (int i = 0;i < inaltime;i++)
{
  for (int j = 0;j < latime;j++)
  {
   if (j == 0 || j == latime-1 )cout << "#";
   else if (j == nava.x && i == nava.y)cout << "O";
  else
   if (j == glont.x && i == glont.y)cout << "|";
  else
   {
  bool eobstacol = false;
  for (int i = 0;i < 999;i++)
{

  if (j == obstacol[i].x && i == obstacol[i].y) { eobstacol = true;break; }

    }
if (!eobstacol)cout << " ";
else cout << "+";
  

   }
  
  
  

  }
  cout << endl;
}
for (int i = 0;i < latime;i++)cout << "#";
}
void Input()
{
if (_kbhit())
{
  switch (_getch()) {
  case 'a': dir = LEFT;break;
  case 'd': dir = RIGHT;break;
  }
}
}
void Logic()
{
switch (dir)
{

case LEFT:nava.x--;
  break;
case RIGHT:nava.x++;
  break;

}
switch (dir2)
  case UP:glont.y--;
if (glont.y==0){
  glont.x = nava.x;
  glont.y = nava.y;
}
for (int i = 0;i < 999;i++)
{
  obstacol[i].x = rand() % latime;
  obstacol[i].y = 2;
}
}
int main()
{
Startup();
while (!GameOver)
{
  Input();
  Logic();
  Draw();
  Sleep(100);

}
}

Edited by stefansws, 23 October 2018 - 21:53.


Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate