|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Odium Junior JLI'ler
Anmeldedatum: 29.12.2003 Beiträge: 78
Medaillen: Keine
|
Verfasst am: 25.01.2004, 16:08 Titel: Map Problem |
|
|
Ich hab ein kleines prob und wollt euch ma fragen.
Also ich hab ne datei "Map.txt" aus der ich die int-werte lese:
ich mach ein öffentliches 2-dimensionales Array
dann hab ich zwei funktionen:
1.LoadMap
2.BuildMap
Code: | void LoadMap(void)
{
FILE* File =fopen("Map.txt","a+");
for(int x=0;x<5;x++)
{
for(int y=0;y<5;y++)
{
fscanf(File,"%d",&map[y][x]);
fseek(File,1,SEEK_CUR);
}
}
fclose(File);
} |
Code: | void BuildMap(HDC hDC)
{
HPEN GreenPen=CreatePen(PS_SOLID,3,RGB(0,255,0));
SelectObject(hDC,GreenPen);
for(int x=0;x<5;x++)
{
for(int y=0;y<5;y++)
{
if(map[x][y]==1)
{
Rectangle(hDC,x*40+40,y*40+40,x*40+40+40,y*40+40+40);
}
}
}
DeleteObject(GreenPen);
} |
Der Inhalt von Map.txt
Code: |
1,0,0,0,0,
1,0,0,0,0,
1,0,0,0,0,
1,0,0,0,0,
1,0,0,0,0 |
Überall da wo eine 1 steht soll ein Rechteck abgebildet werden.
Beim Ausführen wird es dann aber falsch ausgegeben.
und zwar so:(1 steht für rechteck, 0 für leer)
Code: | 1,1,0,0,0,
1,0,0,0,0,
1,0,0,0,0,
1,0,0,0,0,
1,0,0,0,0, |
ich hab schon alle mögl. varianten ausprobiert,doch es wird immer falsch ausgegeben
wisst ihr woran das liegt?
gruß,odium |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 25.01.2004, 21:44 Titel: |
|
|
Hast du schon mal versucht, das ganze zu debuggen?
Da kann man nämlich viele Fehler entdecken. Vielleicht hat irgendeine Variable einen falschen Wert. _________________ 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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 25.01.2004, 21:50 Titel: |
|
|
Wenn du map[4][4] schreibst, dann werden 4*4 Elemente angelegt. Deine map-Datei hat aber 5*5 und du ließt auch bis x<5 und y<5, dass muss du schon anpassen.
Christian |
|
Nach oben |
|
|
Odium Junior JLI'ler
Anmeldedatum: 29.12.2003 Beiträge: 78
Medaillen: Keine
|
Verfasst am: 27.01.2004, 15:31 Titel: |
|
|
ich dachte immer ,dass z.b. Array[4] 5 Elemente hat,da Array[0] auch zählt.Wieder mal was dazugelernt.
Ich kiregs aber trotzdem irgendwie net hin.
Wie liest man denn eine map für gewöhnlich ein?
mit 2 for schleifen,while,....
normalerweise müsste es doch so funktionieren wie ichs hab.
ich verstehs net... |
|
Nach oben |
|
|
HotAcid Super JLI'ler
Alter: 43 Anmeldedatum: 04.08.2002 Beiträge: 372 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 27.01.2004, 15:36 Titel: |
|
|
mit
Erzeugst du ein Array mit 5 Elementen. Diese haben Indizes 0-4, also
Code: |
n[0] = 0;
...
n[4] = 4;
// ACHTUNG:
n[5] = 5; // FEHLER
|
viele Grüße
Felix _________________ StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht. |
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 27.01.2004, 17:38 Titel: |
|
|
Bei sowas rate ich dir ganz extrem aufzupassen.
Zum beispiel kann es dann vorkommen, dass du beim debuggen merkst, dass urplötzlich sich der wert einer wichtigen variable ändert ( zum Beispiel von DirectX Devices oder so), dann liegt das meistens daran, dass du irgendwo ein Array Overflow hast (hat mich damals verdammt viel stunden debugg zeit gekostet) |
|
Nach oben |
|
|
Odium Junior JLI'ler
Anmeldedatum: 29.12.2003 Beiträge: 78
Medaillen: Keine
|
Verfasst am: 27.01.2004, 19:36 Titel: |
|
|
danke,hab das prob inzwischen gelöst und kann weiter an meinem game arbeiten.
|
|
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
|