Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
DarK Super JLI'ler
Anmeldedatum: 23.07.2002 Beiträge: 452 Wohnort: NRW Medaillen: Keine
|
Verfasst am: 15.04.2003, 22:32 Titel: string -> objects |
|
|
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 |
|
|
DarK Super JLI'ler
Anmeldedatum: 23.07.2002 Beiträge: 452 Wohnort: NRW Medaillen: Keine
|
Verfasst am: 15.04.2003, 22:41 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 15.04.2003, 22:52 Titel: |
|
|
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 |
|
|
DarK Super JLI'ler
Anmeldedatum: 23.07.2002 Beiträge: 452 Wohnort: NRW Medaillen: Keine
|
Verfasst am: 15.04.2003, 23:14 Titel: |
|
|
EDIT: Irgendwie werden die Texturen nur "GapuTt" angezeigt...
woran liegt das
ü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 |
|
|
DarK Super JLI'ler
Anmeldedatum: 23.07.2002 Beiträge: 452 Wohnort: NRW Medaillen: Keine
|
Verfasst am: 16.04.2003, 00:09 Titel: |
|
|
mir is geade aufgefallen das immer nur der letze Pfad in de TxtDatei funz..
die anderen sind alle putt , bis auf das letzte immer |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 16.04.2003, 09:06 Titel: |
|
|
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 |
|
|
DarK Super JLI'ler
Anmeldedatum: 23.07.2002 Beiträge: 452 Wohnort: NRW Medaillen: Keine
|
Verfasst am: 16.04.2003, 09:16 Titel: |
|
|
wie ?
EDIT: for (int x = 0; x < 255; x++) if (load[x] == '\0') load[x] = NULL;
? |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 16.04.2003, 09:51 Titel: |
|
|
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 |
|
|
DarK Super JLI'ler
Anmeldedatum: 23.07.2002 Beiträge: 452 Wohnort: NRW Medaillen: Keine
|
Verfasst am: 16.04.2003, 09:52 Titel: |
|
|
hab jetzt einfach das \0 duch NULL ersetzt und es funz
thx , siehe oben |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 16.04.2003, 09:54 Titel: |
|
|
'\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 |
|
|
DarK Super JLI'ler
Anmeldedatum: 23.07.2002 Beiträge: 452 Wohnort: NRW Medaillen: Keine
|
Verfasst am: 16.04.2003, 09:59 Titel: |
|
|
komischerweise gehts aber jetzt |
|
Nach oben |
|
|
|