Új hozzászólás Aktív témák

  • Tomi_78

    aktív tag

    Sziasztok!
    Napok óta rágódom egy C++-os programrészleten, nevezetesen hogy van egy alak nevű osztály, aminek vannak egy tömbben tárolt alképei, és ezeket az alképeket kellene váltogatnia szabályos időközönként. De sajnos az alképek váltogatása valamiért nem működik. Talán már az alképek beolvasását és eltárolását sem jól oldottam meg? Valaki tud segíteni?
    Íme a kód:
    #include <vcl.h>
    #pragma hdrstop

    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------

    class egyalak
    {
    public:
    egyalak(int px, int py, Graphics::TBitmap* kep)
    { x=px; y=py; kepe=kep;}
    int x;
    int y;
    Graphics::TBitmap* kepe;
    char alkepvaltoido;
    char aktalkep;
    char alkepdb;
    };

    Graphics::TBitmap *AlakokKepe = new Graphics::TBitmap;
    egyalak *alakok[5];
    TTimer *alakmozgato;
    Graphics::TBitmap* kepei[4];

    void __fastcall TForm1::alakmozgatas(TObject *Sender)
    {
    int i;
    for (i=0; i<5; i++)
    {
    if (alakok[i]->alkepvaltoido>0)
    {
    alakok[i]->alkepvaltoido-=1;
    }
    else
    {
    if (alakok[i]->aktalkep+1<alakok[i]->alkepdb)
    {
    alakok[i]->aktalkep+=1;
    }
    else
    {
    alakok[i]->aktalkep=0;
    }
    if (alakok[i]->x+(AlakokKepe->Width)<Form1->Width)
    {
    alakok[i]->x+=8;
    }
    else
    {
    alakok[i]->x=-64;
    alakok[i]->y=random(Form1->Height-64);
    }
    alakok[i]->alkepvaltoido=5;
    }
    alakok[i]->kepe=kepei[alakok[i]->aktalkep];
    }
    Invalidate();
    }
    //Ezeket kéne váltogatnia, ahogy lépked az alak:
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    AlakokKepe->LoadFromFile("alak\\alak_all.bmp");
    kepei[0] = AlakokKepe;
    kepei[2] = AlakokKepe;
    AlakokKepe->LoadFromFile("alak\\alak_lep1.bmp");
    kepei[1] = AlakokKepe;
    AlakokKepe->LoadFromFile("alak\\alak_lep2.bmp");
    kepei[3] = AlakokKepe;

    int i;
    for (i=0; i<5; i++)
    {
    alakok[i]=new egyalak(4,i*AlakokKepe->Height+10,kepei[0]);
    alakok[i]->alkepvaltoido=5;
    alakok[i]->aktalkep=0;
    alakok[i]->alkepdb=3;
    }

    alakmozgato=new TTimer(this);
    alakmozgato->Interval=50;
    alakmozgato->Enabled=true;
    alakmozgato->OnTimer=alakmozgatas;
    }
    //---------------------------------------------------------------------------

    void __fastcall TForm1::Kirajzol(TObject *Sender)
    {
    int i;
    for (i=0; i<5; i++)
    {
    Canvas->Draw(alakok[i]->x,alakok[i]->y,alakok[i]->kepe);
    }
    }

Új hozzászólás Aktív témák