Ú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
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Poco F7
- Linux kezdőknek
- Google Pixel 10 Pro XL – tíz kicsi Pixel
- HiFi műszaki szemmel - sztereó hangrendszerek
- Kamionok, fuvarozás, logisztika topik
- Napelem
- Fejhallgató erősítő és DAC topik
- Doky586: Adattár lemez előkészítése távlati Windows telepítéshez
- Milyen okostelefont vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...
- GYÖNYÖRŰ iPhone SE 2020 64GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2896, 100% Akkumulátor
- Apple iPhone 16 128GB,Újszerű,Kábel,12 hónap garanciával
- GYÖNYÖRŰ iPhone 12 mini 128GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3392, 94% Akkumulátor
- GYÖNYÖRŰ iPhone XR 64GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS3118, 100% Akkumulátor
- Telefon felvásárlás!! Xiaomi Redmi 9, Xiaomi Redmi 9AT, Xiaomi Redmi 10, Xiaomi Redmi 10 2022
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest