The Incredible TextMan (Spel, C++)
Detta är bara ett simpelt spel gjort i C++.
Syftet med detta är för nybörjare att se hur ett spel fungerar i grund och botten
Är en del text men har ingen filehost så fick blå såhära.
För att komma igång:
* Klistra in koden i din editor
* Kör du UNIX eller liknande, ändra raden 'char *OS = "WIN";' till 'char *OS = "UNIX";'
* Compilera och Kör
Innehåller:
* Förflyttning av en spelare
* Simpel Kollisionshantering
/*
* The Incredible TextMan
* (C) Andreas Lindström, 2008
*
* You are allowed to use this source code for public purpose
* as long as this original copyright text remains.
*
* //Andreas
*/
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
char *OS = "WIN"; // OS Version, Usage: char *OS = 'WIN' or 'UNIX'
char player;
void clrscr();
void show_help();
void GameLoop(string pName);
void DrawGameField(string pName, int pX, int pY);
int main()
{
string pName;
show_help();
cout << "Enter your initials (3 Letters): ";
cin >> pName;
pName.resize(3);
cout << "Enter a character (Only 1): ";
cin >> player;
clrscr();
GameLoop(pName);
cout << "Goodbye!" << endl;
//system("PAUSE"); // Using Visual Studio 2008,
// so this line is not really
// needed. But im adding it
// for other people using other
// compilers.
return 0;
}
void GameLoop(string pName)
{
bool GameEnd;
int pX = 0, pY = 0;
GameEnd = false;
DrawGameField(pName, pX, pY);
do
{
int keyDown = 0;
if(_kbhit())
{
keyDown=_getch();
if(keyDown == 119) // W Key
{
if(pY >= 1)
pY -= 1;
}
else if(keyDown == 97) // A Key
{
if(pX >= 1)
pX -= 1;
}
else if(keyDown == 100) // D Key
{
if(pX <= 75)
pX += 1;
}
else if(keyDown == 115) // S Key
{
if(pY <= 19)
pY += 1;
}
else if(keyDown == 27) // ESC Key
{
GameEnd = true;
}
DrawGameField(pName, pX, pY);
}
} while (GameEnd == false);
}
void clrscr()
{
if(strcmp(OS, "WIN") == 0)
{
system("cls");
}
else if(strcmp(OS, "UNIX") == 0)
{
system("clear");
}
return;
}
void DrawGameField(string pName, int pX, int pY)
{
clrscr();
cout << " Name: " << pName << " Position: (" << (pX + 1) << ", " << (pY + 1) << ")" << endl;
cout << "+-----------------------------------------------------------------------------+" << endl;
for(int y = 0; y <= 20; y++)
{
cout << "|";
for(int x = 0; x < 77; x++)
{
if((y == pY) && (x == pX))
{
cout << player;
}
else
{
cout << " ";
}
}
cout << "|" << endl;
}
cout << "+-----------------------------------------------------------------------------+" << endl;
}
void show_help()
{
cout << "\tThe Incredible TextMan" << endl << "Copyright (C) Andreas Lindstrom, 2008" << endl << endl;
cout << "\t\t!!! How To Play !!!" << endl << endl;
cout << "\tKeys:" << endl;
cout << "\t W = Move Up" << endl;
cout << "\t A = Move Left" << endl;
cout << "\t S = Move Down" << endl;
cout << "\t D = Move Right" << endl << endl;
cout << "\t ESC = Exit Game" << endl << endl << "Now Enjoy! (PS. The flickering is supposed to be there. DS.)" << endl << endl;
}
EDIT:
Ändrade lite i koden och tog bort lite onödiga saker
//AJL
C#/MonoGame Fanatiker.
Pixel Artist & Game Developer