[ 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. |
[ vlada89 @ 01.02.2009. 18:33 ] @
[ 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. Copyright (C) 2001-2024 by www.elitesecurity.org. All rights reserved.
|