JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=b707373f2cfd0429df383a2944b7cb4fMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Map Problem

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Odium
Junior JLI'ler



Anmeldedatum: 29.12.2003
Beiträge: 78

Medaillen: Keine

BeitragVerfasst am: 25.01.2004, 16:08    Titel: Map Problem Antworten mit Zitat

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
Code:
int map[4][4];

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 Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 25.01.2004, 21:44    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 25.01.2004, 21:50    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Odium
Junior JLI'ler



Anmeldedatum: 29.12.2003
Beiträge: 78

Medaillen: Keine

BeitragVerfasst am: 27.01.2004, 15:31    Titel: Antworten mit Zitat

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... Crying or Very sad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 27.01.2004, 15:36    Titel: Antworten mit Zitat

mit
Code:

int n[5];


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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
xardias
JLI Master


Alter: 38
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 27.01.2004, 17:38    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Odium
Junior JLI'ler



Anmeldedatum: 29.12.2003
Beiträge: 78

Medaillen: Keine

BeitragVerfasst am: 27.01.2004, 19:36    Titel: Antworten mit Zitat

danke,hab das prob inzwischen gelöst und kann weiter an meinem game arbeiten.
Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum