Useampi kamera ruudulle
Useampi kamera ruudulle
Kameran siirto tietyn objektin luokse onnistuu helposti, mutta kuinka saan useamman kamerakuvan ruutuun yhtä aikaa ja kuinka se kannattaisi toteuttaa?
-
- Moderator
- Posts: 227
- Joined: Wed Aug 29, 2007 3:55 pm
Re: Useampi kamera ruudulle
Piirrät kummatkin ruudut drawtoimagella kuviin, jotka piirrät sitten näytölle lopuksi. About näin:
Kuvien kannattaa olla puolikkaan ruudun kokoisia.
Code: Select all
Kamera ukon kohdalle
Drawtoimage kuva1
Drawscreen
Kamera toisen ukon kohdalle
Drawtoimage kuva2
Drawscreen
Drawtoscreen
Drawimage kuva1
Drawimage kuva2
Drawscreen
Re: Useampi kamera ruudulle
No ehdin jo tehdä esimerkin kommenteilla :/
Eli postaan sen.
Eli postaan sen.
Code: Select all
SCREEN 800, 600
Const IKKUNA_KOKO = 300
ruutu1 = MakeImage( IKKUNA_KOKO, IKKUNA_KOKO )
ruutu2 = MakeImage( IKKUNA_KOKO, IKKUNA_KOKO )
kartta = LoadMap( "media\cdm2.til", "media\tileset.bmp" )
ukko1 = LoadObject( "media\guy.bmp", 72 )
ukko2 = CloneObject( ukko1 )
SetupCollision ukko1, kartta, 2, 4, 2
SetupCollision ukko2, kartta, 2, 4, 2
Repeat
MoveObject ukko1, ( UpKey() - DownKey() ) * 5
TurnObject ukko1, ( LeftKey() - RightKey() ) * 5
DrawToImage ruutu1 //Piirretään 1-ruutuun. Ts. ohjataan kaikki piirtokomennot piirrettäväksi kuvaan ruudun sijaan
Cls 'tyhjennetään aikaisempi kuva
'asetetaan kamera ukon sijaintiin
PositionCamera ObjectX( ukko1 ) + ScreenWidth() / 2 - IKKUNA_KOKO / 2, ObjectY( ukko1 ) - ScreenHeight() / 2 + IKKUNA_KOKO / 2
DrawGame 'Nyt on kamera oikeassa kohdassa, joten piirrämme pelimaailman (piirto kohdistettu 1-kuvaan).
DrawToScreen 'piirtokomennot taas ruudulle. Tämä on oikeastaan turha koska piirrämme heti 2-kuvaan, eikä ruudullepiirtoa
'välissä tapahdu. Mutta tekee ehkä tästä selkeämmän.
DrawToImage ruutu2 //Piirretään 2-ruutuun. Täsmälleen samat asiat 2-kuvaan. Kameran sijainti vain muutetaan 2-ukon kohdalle.
Cls
PositionCamera ObjectX( ukko2 ) + ScreenWidth() / 2 - IKKUNA_KOKO / 2, ObjectY( ukko2 ) - ScreenHeight() / 2 + IKKUNA_KOKO / 2
DrawGame
DrawToScreen
//Piirretään itse ruudut. Ennen tätä ei ruudullä näy mitään, mutta meillä on muistissa 2 eri kuvaa jotka
//sisältävät palasen jostain päin pelimaailmaa kumpikin.
DrawImage ruutu1, 100, 0 //Nämä koordinaatit vaikuttavat vain siihen mihin ikkuna piirretään
DrawImage ruutu2, 100 + IKKUNA_KOKO, IKKUNA_KOKO
DrawScreen 'piirretään koko höskä (eli käytännössä vain nuo kaksi kuvaamme).
Forever
Re: Useampi kamera ruudulle
Kiitos ! Sepä oli helppoa, kun sen osaa