[ vlada89 @ 01.02.2009. 18:33 ] @
Pozdrav svima,
dakle da li se moze postaviti neka slika na komponentu TImage koja se moze pomerati kroz Canvas , mislim nesto kao kod igre Super Mario kada se on krece pejzaz se "pomera" odnosno menja?
Hvala.
[ X Files @ 01.02.2009. 18:57 ] @
VCL biblioteka sama po sebi nije pogodna za brzo i glatko skrolovanje delova bitmape. Za sve sto ima veze sa elementima "video igara" koriste se posebne tehnike i biblioteke, koje su projektovane i optimizovane za takve stvari. Postoji forum na [ES]-u posvecen video igrama.

Skrolovanje u VCL maniru bi se svodilo da pomeranje Left i Top osobina objekta, uz konstantno osvezavanje ekrana, sto ces i sam videti da je sasvim bezveze.

Po nekom mom iskustvu, najvise sto mozes da uradis po pitanju brzine i glatkoce skrola sa TImage je da komponentu spakujes u TScrolBox objekat (TImage da bude unutar TScrollBox-a).

Kasnije mozes da napravis neki ovakav test kod:

Code:

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    // ovo sluzi da sliku koja je unutar boxa, poveca na originalnu velicinu,
    // preptostavka je da je slika daleko veca od scroll box-a
    Image1->Width = Image1->Picture->Width;
    Image1->Height = Image1->Picture->Height;

    // Ovo sluzi da ukloni vertikalni i horizontalni scroll bar, mozes to uraditi i kroz object inspector.
    // Takodje, mozes sasvim ukloniti i border, snadji se sam da ne preturam sad po Helpu
    ScrollBox1->VertScrollBar->Visible = false;
    ScrollBox1->HorzScrollBar->Visible = false;
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   // ovo ce kao skrolovati ucitanu sliku po dijagonali...
   for ( int i=0; i<=Image1->Picture->Width; i++ )
   {
      // mala pauza, da bi video max brzinu, ukloni sasvim ovu liniju
      Sleep( 1 );
      // OVO JE KLJUCNA METODA (ScrollBy), PROUCI U HELPU STA ZNACI KOJI PARAMETAR
      ScrollBox1->ScrollBy( -1, -1 );
      // osvezavanje
      ScrollBox1->Update();
   }
}


Ako je slika koju zelis da postavis unutar ScrollBox-a prevelika, tada je potreban drugaciji pristup. Sliku je potrebno izdeliti na segmente (kao kvadrate matrice) i dinamicki ucitati. Kod za takvo nesto imas ovde:

http://www.antivari.com/moving.zip

[ vlada89 @ 01.02.2009. 19:26 ] @
Hvala na odgovoru X File, sada sledi isprobavanje!
Inace pogodio si - u pitanju je pokusaj pravljena jednostavne video igre tipa Super Maria.
Pozdrav.