|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Snowsong Junior JLI'ler
Alter: 37 Anmeldedatum: 15.05.2007 Beiträge: 53
Medaillen: Keine
|
Verfasst am: 30.01.2010, 12:21 Titel: Problem mit Zweidimensionalem Array |
|
|
Hallo ich habe das Problem das ich einen Array gern mit Datein füllen würde
es aber einfach nicht funktionieren will.
Hier mal ein wenig Code
Die Strukturen
Code: |
//Struktur eines Steinfeldes im Spiel
typedef struct sStone
{
int Status; //Status des Steins | 0 = kein Stein, 1 = Stein mit Rissen, 2 = Ganzer Stein
int color; //Farbe des Steins | 0-4 | Rot, Grün, Blau, Gelb, Orange
} sStone;
//Level Struktur
typedef struct sLevel
{
sStone stones[12][8]; //Steine eines Levels 12x8
} sLevel;
|
dann erstell ich in der Klasse den Array
Code: |
sLevel levels[1]; //Alle Levels
|
und dann will ich das Level mit Datein füllen zur Laufzeit
Code: |
//Level 1 - Das Standart Level
levels[0].stones
(
((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0))
);
|
bekomm aber einen Fehler den ich erlich nich versteh -.-
Code: |
1>c:\users\michael\documents\visual studio 2008\projects\brakeout\brakeout\ccore.cpp(324) : error C2064: Ausdruck ergibt keine Funktion, die 8 Argumente übernimmt
|
Was soll ich machn arbeite ich falsch mit dem Array? |
|
Nach oben |
|
|
Cyianor Super JLI'ler
Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 30.01.2010, 16:58 Titel: Re: Problem mit Zweidimensionalem Array |
|
|
Snowsong hat Folgendes geschrieben: | Was soll ich machn arbeite ich falsch mit dem Array? |
Das kann man wohl so sagen. Und da du selbst auf diese Spur gekommen bist hättest du ihr eigentlich folgen können und z.B. mal in Google die Suchwörter "Array C" eingeben können. Dann wärst du jetzt schon sehr viel schlauer und hättest dein Problem vermutlich schon gelöst.
Viel Erfolg! |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 30.01.2010, 17:09 Titel: |
|
|
Code: | levels[0].stones = { {sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0)},
{sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0)},
//[...]
} |
Da musst du deiner Stones-Struktur allerdings einen Konstruktor verpassen.
Wenn bei der Initialisierung sowieso in jedes Element das gleiche rein kommt, kannst dus auch eleganter mit einer verschachtelten Schleife initialisieren. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
Snowsong Junior JLI'ler
Alter: 37 Anmeldedatum: 15.05.2007 Beiträge: 53
Medaillen: Keine
|
Verfasst am: 30.01.2010, 17:22 Titel: |
|
|
Hmm die Sache ist das jeder Stein zb anders werden soll
deswegen kann ich den Array nicht direkt beim erstellen füllen.
Und die Suche nach "Array C" zb hat viel ergeben nur überall
wird der Array zur Zeit der Erstellung gefüllt auf die Art niemals
zur Laufzeit.
sobald ich ein = benutze kommt das int nicht in stones[12][8] konvertiert werden kann.
Und bei { oder } zeichen kommt Fehler das die da nix zu suchen haben. |
|
Nach oben |
|
|
=]Mid[=]Night[= Super JLI'ler
Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 31.01.2010, 19:06 Titel: |
|
|
Zum Füllen von Arrays benutzt man in dem Fall Schleifen. Dazu sollte sich auf jeden Fall was im Internet finden lassen.
Aber der Vollständigkeit halber:
CPP: | for(int i = 0; i < WIDTH; ++i) {
for(int j = 0; j < HEIGHT; ++j) {
stones[i][j] = //Wert hier einsetzen
}
}
|
|
|
Nach oben |
|
|
Snowsong Junior JLI'ler
Alter: 37 Anmeldedatum: 15.05.2007 Beiträge: 53
Medaillen: Keine
|
Verfasst am: 01.02.2010, 09:40 Titel: |
|
|
Ich möchte aber jeden Wert anders haben...
Jeder Wert Representiert einen Stein.
(Der Status, Die Farbe) im endeffekt will ich so die Levels gestalten
das es dann zb so aussieht.
(0,0)(2,1)(1,4).... |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 01.02.2010, 13:00 Titel: |
|
|
Die Syntax ist ganz einfach falsch...
Am besten benutzt du auch statt Arrays Vektoren. Also std::vector. Zum Befühlen könnte man dann folgendes benutzen:
http://www.boost.org/doc/libs/1_41_0/libs/assign/doc/index.html
Aber es ist allgemein sehr unschön, Levels im Code zu initialisieren, lad die einfach aus einer Datei, dann bist du flexibel und hast die ganzen Probleme nicht. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Snowsong Junior JLI'ler
Alter: 37 Anmeldedatum: 15.05.2007 Beiträge: 53
Medaillen: Keine
|
Verfasst am: 01.02.2010, 14:45 Titel: |
|
|
Zitat: |
Die Syntax ist ganz einfach falsch...
|
Und wie ist dann die richtige^^ alle reden immer drumrum -.-
Zitat: |
Aber es ist allgemein sehr unschön, Levels im Code zu initialisieren, lad die einfach aus einer Datei, dann bist du flexibel und hast die ganzen Probleme nicht.
|
Ich wollt nur 2-3 kleine Brakeout Levels machen da erscheint es mir
unsinnig da extra lvl dateien anzulegen.
Und ich wollt mit Arrays machen zu Übungszwecken |
|
Nach oben |
|
|
=]Mid[=]Night[= Super JLI'ler
Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 01.02.2010, 16:00 Titel: |
|
|
Also wenn du es unbedingt alles einzeln machen willst, schreibste es so hin:
CPP: | stones[0][0] = //erster Stein
stones[0][1] = //zweiterStein
...
|
Das ist an sich aber keine Lösung. Wenn du es aus einer Datei liest ist das übrigens auch ne gute Übung. |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 01.02.2010, 18:59 Titel: |
|
|
Snowsong hat Folgendes geschrieben: | Und wie ist dann die richtige^^ alle reden immer drumrum -.- |
Das blick ich jetzt nicht...
Ich hab dir in meiner Antwort oben doch direkt einen Codeausschnitt mit der richtigen Syntax geschrieben. Nen Konstruktor brauchst du für deine Struktur, damit ers rafft. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|