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

  • Tomi_78

    aktív tag

    válasz mgoogyi #4267 üzenetére

    Nem, a Unt1.h-ban ez a fejléc:
    void __fastcall alakcsinalas(TObject *Sender);
    De itt az egész kódom, talán még nem olyan nagy annyira, hogy ne tegyem itt közzé:
    #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;
    unsigned char alkepvaltoido; //0-255
    unsigned char aktalkep;
    unsigned char alkepdb;
    unsigned char sebessege;
    };

    const int maxalakdb = 5;
    egyalak *alakok[maxalakdb];
    int alakdb = maxalakdb;
    TTimer *alakmozgato;
    Graphics::TBitmap* kepei[4];
    int pontok = 0;
    unsigned char as = 32;
    unsigned char th = 1;

    void __fastcall TForm1::alakcsinalas(TObject *Sender)
    {
    int i;
    for (i=0; i<alakdb; i++)
    {
    alakok[i]=new egyalak(4,i*kepei[0]->Height*2,kepei[0]);
    alakok[i]->alkepvaltoido=5;
    alakok[i]->aktalkep=0;
    alakok[i]->alkepdb=3;
    alakok[i]->sebessege=as;
    }
    }

    void __fastcall TForm1::alakmozgatas(TObject *Sender)
    {
    int i;
    for (i=0; i<alakdb; 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+(kepei[0]->Width)<Form1->Width)
    {
    alakok[i]->x+=alakok[i]->sebessege;
    }
    else
    {
    delete alakok[i];
    if (i<alakdb)
    {
    int j;
    for (j=i+1; j<alakdb; j++)
    {
    alakok[i]=alakok[j];
    }
    };
    alakdb-=1;
    if (alakdb<1)
    {
    if (as+4<255)
    {
    as+=4;
    }
    &alakcsinalas;
    };
    }
    alakok[i]->alkepvaltoido=5;
    }
    alakok[i]->kepe=kepei[alakok[i]->aktalkep];
    }
    Invalidate();
    }

    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    kepei[0] = new Graphics::TBitmap;
    kepei[0]->LoadFromFile("alak\\alak_all.bmp");
    kepei[0]->Transparent=true;
    kepei[2] = new Graphics::TBitmap;
    kepei[2]->LoadFromFile("alak\\alak_all.bmp");
    kepei[2]->Transparent=true;
    kepei[1] = new Graphics::TBitmap;
    kepei[1]->LoadFromFile("alak\\alak_lep1.bmp");
    kepei[1]->Transparent=true;
    kepei[3] = new Graphics::TBitmap;
    kepei[3]->LoadFromFile("alak\\alak_lep2.bmp");
    kepei[3]->Transparent=true;

    &alakcsinalas;

    alakmozgato=new TTimer(this); //Időzítő létrehozása
    alakmozgato->Interval=50; //Időtartam beállítása
    alakmozgato->Enabled=true;
    alakmozgato->OnTimer=alakmozgatas; //Ez történjen, ha lefutott.
    }
    //---------------------------------------------------------------------------

    void __fastcall TForm1::Kirajzol(TObject *Sender)
    {
    TPoint p = Form1->ScreenToClient(Mouse->CursorPos);
    int i;
    for (i=0; i<alakdb; i++)
    {
    if (GetAsyncKeyState(VK_LBUTTON) && p.x>=alakok[i]->x && p.x<=alakok[i]->x+kepei[0]->Width && p.y>=alakok[i]->y && p.y<=alakok[i]->y+kepei[0]->Height)
    {
    pontok+=1;
    delete alakok[i];
    if (i<alakdb)
    {
    int j;
    for (j=i+1; j<alakdb; j++)
    {
    alakok[i]=alakok[j];
    }
    };
    alakdb-=1;
    }
    Canvas->Draw(alakok[i]->x,alakok[i]->y,alakok[i]->kepe);
    }
    Form1->Caption = "Alakok: "+IntToStr(alakdb)+" - Pontjaid: "+IntToStr(pontok)+" - Támadóhullám: "+IntToStr(th);
    }

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