JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

string -> objects

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 15.04.2003, 22:32    Titel: string -> objects Antworten mit Zitat

Ich hab in einer TextDatei pfade zu datein stehen z.b.
images\\stuhl.bmp , images\\tisch.bmp e.t.c.

nun habe ich es geschaft diese TextDatei auszulesen
das ich die einzelnen pfade in einem String habe...

wie kann ich nun diesen Pfad (String) zu einem von meiner Sprite Class Object machen also: Sprite Stuhl; z.b.

Sinn dieser ganzen Sache ist es, das nicht nicht alle Bilder über 10 Seiten Code verteile sondern per txt auslese und iner FOR Schleife alles einmal durchlaufen lass ...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 15.04.2003, 22:41    Titel: Antworten mit Zitat

halt mal, kann ich nicht einfach nur folgendes machen:

Sprite Automaitc[100];

for (int = 0; i < 99; i++)
{
Automatic[i].Create(string_mit_dem_pfad, width, height); z.b.
}

?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 15.04.2003, 22:52    Titel: Antworten mit Zitat

Das sollte gehen, i darf außerdem bis <100 laufen.
Wenn du den Pfad anpasst, kannst du sogar verschiedene Sprites laden:

#define SPRITES "c:/sprites/sprite%04d"

char string_mit_dem_pfad[256];

for (int = 0; i <100; i++)
{
sprintf(string_mit_dem_pfad,SPRITES,i);

Automatic[i].Create(string_mit_dem_pfad, width, height);
}

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 15.04.2003, 23:14    Titel: Antworten mit Zitat

EDIT: Irgendwie werden die Texturen nur "GapuTt" angezeigt... Sad
woran liegt das Question

übernimmt der vieleicht die absätze "\n" mit wenn ich so auslese die txt datei ?

y = 0
Datei = fopen("textures.dat", "r");
while(!feof(Datei))
{
fgets(load[y], 50, Datei);
y++;
}
wenn ich ausgebe mit TextOut dann steht dai mmer der Pfad aber absätze seh ich ja net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 16.04.2003, 00:09    Titel: Antworten mit Zitat

mir is geade aufgefallen das immer nur der letze Pfad in de TxtDatei funz..
die anderen sind alle putt , bis auf das letzte immer Sad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 16.04.2003, 09:06    Titel: Antworten mit Zitat

Zitat:

The fgets function reads a string from the input stream argument and stores it in string. fgets reads characters from the current stream position to and including the first newline character, [...]


;)

Den musst du dann also löschen(ie. mit '\0' überschreiben).
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 16.04.2003, 09:16    Titel: Antworten mit Zitat

wie ?

EDIT: for (int x = 0; x < 255; x++) if (load[x] == '\0') load[x] = NULL;
?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 16.04.2003, 09:51    Titel: Antworten mit Zitat

Normalerweise bin ich kein Freund von mangelnder Eigeninitiative aber ich habe heute gute Laune. :P

Mit strlen() erhält man die Länge eines Strings... das line-feed Zeichen ist normalerweise direkt davor... also nimmt man strlen(string) - 1 und setzt an der Stelle '\0':
Code:

void main()
{
   char foo[] = "Toller String mit nem line-feed-character\n";

   cout << foo << "XXX\n";

   foo[strlen(foo) - 1] = '\0';

   cout << foo << "XXX\n";
}


Viel Spass beim coden. ;)
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 16.04.2003, 09:52    Titel: Antworten mit Zitat

hab jetzt einfach das \0 duch NULL ersetzt und es funz Smile

thx , siehe oben
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 16.04.2003, 09:54    Titel: Antworten mit Zitat

'\0' und NULL sind identisch... beide haben den gleichen Wert... 0 :P Außerdem ist meine Variante schneller ;)
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 16.04.2003, 09:59    Titel: Antworten mit Zitat

komischerweise gehts aber jetzt Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL 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