Du bist nicht angemeldet.

Werbeanzeige

grossapanda4

Frischling

  • »grossapanda4« ist der Autor dieses Themas

Beiträge: 11

Wohnort: Lage

Beruf: Schüler (7. Klasse)

  • Private Nachricht senden

1

26.06.2012, 14:47

C++ nur eine Spalte in Mehrdimensionalen Arrays ansprechen

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 :dash:
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

grossapanda4

Frischling

  • »grossapanda4« ist der Autor dieses Themas

Beiträge: 11

Wohnort: Lage

Beruf: Schüler (7. Klasse)

  • Private Nachricht senden

2

26.06.2012, 14:59

Edit:

if (Field[0][0])

Hier sollte das "Input = getch()" stehen

Und bei den if-abfragen für die Bewegungen habe ich vergessen, die anderen 3 zu fertig zu programmieren :D

3

26.06.2012, 15:54

Ich würde dir die SFML empfehlen ;)
Only God can judge me.

grossapanda4

Frischling

  • »grossapanda4« ist der Autor dieses Themas

Beiträge: 11

Wohnort: Lage

Beruf: Schüler (7. Klasse)

  • Private Nachricht senden

4

26.06.2012, 15:55

Ist das etwas ähnliches wie DirectX oder OpenGL?



PS: Danke für die schnelle Antwort :thumbsup:



edit: Erst googlen, dann reden ;)

Kennst du irgendein gutes Tutorial dafür?

Wär nett, wenn du mir nen Link schicken könntest.

5

26.06.2012, 16:26

Darf ich das auch machen?
http://www.sfml-dev.org
Mit ein wenig Augen Öffnen hast du dort ausreichend Tutorials, sofern du SFML 2 benutzen solltest auch wenn du mitdenkst, aber das sollte man ja immer. :P

MfG
Check

6

26.06.2012, 21:54

Als ich noch ein ziemlich brutaler Anfänger in C++(was sich vermutlich noch nicht so stark verändert hat), habe ich immer wieder gerne Videos auf Youtube angeschaut. Hier z.B. ist einer meiner Favoriten: http://www.youtube.com/watch?v=sD7qL2BuRTY .

PS: Als Favoriten meine ich natürlich den "Lehrer". ;)
Only God can judge me.

Werbeanzeige