Lista struktur i usuwanie ich
Ostatnio zmodyfikowano 2011-04-24 13:15
skovv Temat założony przez niniejszego użytkownika |
Lista struktur i usuwanie ich » 2011-04-24 11:21:25 Witam ponownie. Piszę swój silnik i mam w nim obsługę roomów, coś takiego: ROOM = "MENU"; ROOMS_BEGIN
if( ROOM == "MENU" ){ przGraj.X = 1024/2; przGraj.Y = 250; przWyjscie.X = 1024/2; przWyjscie.Y = 450;
//... } if( ROOM == "GRA" ){ GRACZ Gracz( 150, 100 );
//...
Gracz.Destroy( ); }
ROOMS_END
Wszystkie roomy zamknięte są w pętli while. Mam problem z tym że gdy załączę room "GRA" w którym na początku tworzy się struktura GRACZ, potem zmienie room na "MENU" i znów biorę "GRA" to wywala mi błąd windowsa(wyślij raport, nie wysyłaj...). Chodzi tu na 99% o strukturę( przeładowanie czy coś? ). Gracz.Destroy( ) zwalnia tylko bitmapke którą na początku roomu sobie wczytuje. Da się usunąć strukturę czy coś takiego? Jeszcze jedno: da się jakoś utworzyć listę struktur GRACZ ? Jeśli robię tak: GRACZ *Gracz[1]; Gracz[0] = new GRACZ(10,10); Gracz[1] = new GRACZ(20,599);
To po użyciu funkcj, np: Update =Gracz[0].Update( ); , piszczy request for member 'Update' in 'Gracz[0]', which is of non-class type 'GRACZ*'| . Skovv. |
|
pekfos |
» 2011-04-24 11:25:33 -> zamiast *? |
|
skovv Temat założony przez niniejszego użytkownika |
» 2011-04-24 11:33:39 Jejku...cofam się chyba w rozwoju :D Dzięki :] A co do usuwania, da się coś z tym zrobić? |
|
pekfos |
» 2011-04-24 11:50:29 delete? |
|
skovv Temat założony przez niniejszego użytkownika |
» 2011-04-24 11:57:42 tak, tyle że gdy daje: delete[] Gracz; to error: type 'struct GRACZ' argument given to 'delete', expected pointer| Nie rozumiem tego błędu. |
|
pekfos |
» 2011-04-24 12:09:58 bo gracz to tablica statyczna wskaźników delete gracz[ 0 ]; |
|
skovv Temat założony przez niniejszego użytkownika |
» 2011-04-24 12:21:20 Gracz nie jest w tablicy. Gracza tworze ręcznie GRACZ Gracz( 150, 100 ); . Może coś nie tak z jego strukturą? struct GRACZ{ int oX; int oY; int Skok; int Grawitacja; int klatka; SPRITE Spr; GRACZ( int x, int y ){ oX = x; oY = y; Skok = 0; Grawitacja = 0.05; klatka = 1; Spr = SprGracz; Spr.Centre = false; Spr.Masked = false; Spr.X = x; Spr.Y = y; } void Update( ){ if( key[KEY_UP] ) Spr.Y -= 1; else if( key[KEY_DOWN] ) Spr.Y += 1;
if( key[KEY_LEFT] ) { Spr.X -= 1; klatka = 3; } else if( key[KEY_RIGHT] ) { Spr.X += 1; klatka = 2; } else klatka = 1; } void Draw( GRAPHIC_DEVICE Dev ){ Spr.DrawAnimation( Dev, klatka ); } void Destroy( ){ Spr.Destroy( ); } };
??? |
|
skovv Temat założony przez niniejszego użytkownika |
» 2011-04-24 12:33:32 Już odkryłem czemu mi się chrzaniło :D Wielkie dzięki za pomoc :] |
|
« 1 » 2 |