Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

postavljanje image komponente koja se "krece"

[es] :: C/C++ programiranje :: C/C++ za početnike :: postavljanje image komponente koja se "krece"

[ Pregleda: 1608 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vlada89

Član broj: 21638
Poruke: 42
93.86.4.*



Profil

icon postavljanje image komponente koja se "krece"01.02.2009. u 18:33 - pre 185 meseci
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.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
87.116.180.*

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: postavljanje image komponente koja se "krece"01.02.2009. u 18:57 - pre 185 meseci
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

 
Odgovor na temu

vlada89

Član broj: 21638
Poruke: 42
93.86.4.*



Profil

icon Re: postavljanje image komponente koja se "krece"01.02.2009. u 19:26 - pre 185 meseci
Hvala na odgovoru X File, sada sledi isprobavanje!
Inace pogodio si - u pitanju je pokusaj pravljena jednostavne video igre tipa Super Maria.
Pozdrav.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: postavljanje image komponente koja se "krece"

[ Pregleda: 1608 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.