Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Lista struktur i usuwanie ich

Ostatnio zmodyfikowano 2011-04-24 13:15
Autor Wiadomość
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.
P-31833
pekfos
» 2011-04-24 11:25:33
-> zamiast *?
P-31834
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ć?
P-31835
pekfos
» 2011-04-24 11:50:29
delete?
P-31836
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.
P-31837
pekfos
» 2011-04-24 12:09:58
bo gracz to tablica statyczna wskaźników
delete gracz[ 0 ];
P-31838
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( );
    }
};

???
P-31839
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 :]
P-31841
« 1 » 2
  Strona 1 z 2 Następna strona