Useampi kamera ruudulle

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
RaatoX
Member
Posts: 54
Joined: Thu Aug 12, 2010 7:04 pm

Useampi kamera ruudulle

Post by RaatoX »

Kameran siirto tietyn objektin luokse onnistuu helposti, mutta kuinka saan useamman kamerakuvan ruutuun yhtä aikaa ja kuinka se kannattaisi toteuttaa?
atomimalli
Moderator
Moderator
Posts: 227
Joined: Wed Aug 29, 2007 3:55 pm

Re: Useampi kamera ruudulle

Post by atomimalli »

Piirrät kummatkin ruudut drawtoimagella kuviin, jotka piirrät sitten näytölle lopuksi. About näin:

Code: Select all

Kamera ukon kohdalle
Drawtoimage kuva1
Drawscreen
Kamera toisen ukon kohdalle
Drawtoimage kuva2
Drawscreen
Drawtoscreen
Drawimage kuva1
Drawimage kuva2
Drawscreen
Kuvien kannattaa olla puolikkaan ruudun kokoisia.
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Useampi kamera ruudulle

Post by Jonez »

No ehdin jo tehdä esimerkin kommenteilla :/
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
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
RaatoX
Member
Posts: 54
Joined: Thu Aug 12, 2010 7:04 pm

Re: Useampi kamera ruudulle

Post by RaatoX »

Kiitos ! Sepä oli helppoa, kun sen osaa ;)
Post Reply