Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

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