Hi Leute!
Ich wollt mal ein kleines Spielfeld mit beweglicher Figur in der Konsole programmieren
Ich zeig euch erstmal den Quellcode:
|
Quellcode
|
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
// #include, #define, using namespace
#include "iostream"
#include "conio.h"
#define X_MAX 10
#define Y_MAX 10using namespace std;
// Globale Variablen
char Field[X_MAX][Y_MAX] = {' '}; // Spielfeld
char Input; // getch()-Eingabe
bool CurrentRun = true; // Boolean, um zu gucken, ob das Spiel noch läuft
unsigned short X = 0;unsigned short Y = 0;
// Hauptfunktionint main()
{
// Anfang: Schleife für das Hauptspiel
do
{
system("cls"); // Bei neuem Durchlauf, Konsole leeren
Field[X][Y] = '|'; // Der Strich soll den Spieler darstellen
cout << "############" << endl; // Anfang: Spielfeld ausgebenfor (int x = 0; x < X_MAX; x++)
{cout << "#";for (int y = 0; y < Y_MAX; y++)
{
cout << Field[x][y];
}cout << "#" << endl;
}
cout << "############" << endl; // Ende: Spielfeld ausgeben
if (Field[0][0])
if (Input == 'w') // Wenn Eingabe 'w' ist, dann vorwärts gehen
{
}
if (Input == 's') // Wenn Eingabe 's' ist, dann rückwärts gehen
{
}
if (Input == 'a') // Wenn Eingabe 'a' ist, dann nach links gehen
{
}
if (Input == 'd') // Wenn Eingabe 'd' ist, dann nach rechts gehen
{Field[X][Y++] = ' ';Field[X][Y] = '|';
}
}while (CurrentRun == true);
// Ende: Schleife für das Hauptspiel
return 0; // Programm beenden
}
|
Ich wollt jetzt eine Kollisionsprüfung einbauen.
Dazu wollt ich bei "input = getch()" noch eine if-Abfrage machen, ob der Spieler vor einer Wand steht: if (Field[*ganze Spalte*][1])
Ich hab aber keine Ahnung, wie ich die Splte ansprechen kann
Falls ihr das wisst oder Verbesserungsvorschläge für den Code habt, würd ich mich freuen, wenn ihr sie schreiben würdet.
PS: Bitte nicht so hart sein, ich bin noch ein Anfänger
Danke schon mal