Split-screen -ongelma

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
User avatar
skinkken
Advanced Member
Posts: 453
Joined: Sat Sep 01, 2007 4:00 pm
Location: Helsinki

Split-screen -ongelma

Post by skinkken »

Tarkoitus olisi tehdä kaksinpeli, kummallakin 400x600 kokoiset ruudut. kameroita liikuteltaisiin a ja d -napeilla(vasen puoli), ja sivunuolilla(oikea puoli). Kentän koko on 2400x600 eli kameroita ei liikuteta ylös eikä alas; kartan leveys on kolme kertaa ruudun leveys. Vika taitaa olla jossakin siellä, missä pitäisi piirtää näkymä kamera1kuvaan ja kamera2kuvaan. en millään onnistu ratkaisemaan ongelmaa, mutta osaisiko joku muu?

Code: Select all

    SCREEN 800,600,32,1

    FrameLimit 30


    '''''''''''''''''''TÄMÄ ON ALLA OLEVAN TILALLA KOSKA KENTTA.PNG:TÄ EI OLE MUILLA'''''''''''''''''''''''''
    kentta=MakeImage(2400,600)
    tausta=LoadImage("media/level.bmp")

    DrawToImage kentta
        DrawImage tausta,0,0
        DrawImage tausta,800,0
        DrawImage tausta,1600,0
    DrawToScreen
    HotSpot kentta
    '''''''''''''''''''TÄMÄ ON ALLA OLEVAN TILALLA KOSKA KENTTA.PNG:TÄ EI OLE MUILLA'''''''''''''''''''''''''


    'kentta=LoadImage("files/kentta.png"):HotSpot kentta

    kamera1kuva=MakeImage(800,600)'kuvat joihin kamerat kopioitaisiin
    kamera2kuva=MakeImage(800,600)'kuvat joihin kamerat kopioitaisiin

'PÄÄLUUPPI
    Repeat
       
       
       
        DrawToWorld ON,ON,ON
            DrawImage kentta,0,0
        DrawToWorld OFF,OFF,OFF
       
        Gosub kamerat
       
        DrawScreen
    Forever
'PÄÄLUUPPI


'!!!!!!!!!!!!!!!ONGELMA ALLA:!!!!!!!!!!!!!!!!!!!!!!!!!

    kamerat:
        'oikea puoli
        If LeftKey() Then kamera1-20
        If RightKey() Then kamera1+20
        If kamera1<-1000 Then kamera1=-1000
        If kamera1>1000 Then kamera1=1000
        PositionCamera kamera1,0
        UpdateGame
        DrawToImage kamera1kuva
            Cls
            DrawGame
        DrawToScreen
       
        'vasen puoli
        If KeyDown(cbkeya) Then kamera2-20
        If KeyDown(cbkeyd) Then kamera2+20
        If kamera2<-1000 Then kamera2=-1000
        If kamera2>1000 Then kamera2=1000
        PositionCamera kamera2,0
        UpdateGame
        DrawToImage kamera2kuva
            Cls
            DrawGame
        DrawToScreen
       
       'tähän pitäisi tehdä piirtäminen, kommentit jotain yrityksiä...
       
        
       
        DrawImage kamera1kuva,0,0'Tämäkään ei jostain syystä toimi
        'DrawImageBox kamera1kuva,400,0,200,0,400,600
        'DrawImageBox kamera2kuva,0,0,200,0,400,600
       
        'CopyBox 200,300,400,600,400,0,Image(kamera1kuva),SCREEN()
        'CopyBox 200,300,400,600,0,0,Image(kamera2kuva),SCREEN()
       
       
    Return


koodissa on jonkin verran kommentteja kyllä siitä varmaan selkoa saa kun vähän kattoo...

Suuret kiitokset jos joku viitsii auttaa. :)
EDIT:

Niin tuo tausta, älä anna hämätä!

Valmiit pelit: House of Horrors , Battle Zone , Über Ball , Itdoti , Space Chaos , Bloxxplosives
Projekti jota teen ehkä joskus vielä: viewtopic.php?f=11&t=2636 <-- Tämä rivi päivitetty 14.1.2013
Jonhu
Active Member
Posts: 186
Joined: Mon Aug 04, 2008 5:45 pm

Re: Split-screen -ongelma

Post by Jonhu »

Tuli tehty tällänen yksinkertanen esimerkki jonkinlaisesta splitscreen hommelista.. Ideana on, että yhteen kuvaan piirretään pelin tapahtumat ja tästä piirretään sitten vain imagebox-komennolla ikkunat haluttuihin paikkoihin.

Code: Select all

SCREEN 800,600,32,1

kentta=MakeImage(2400,600)
tausta=LoadImage("media/level.bmp")

DrawToImage kentta
    DrawImage tausta,0,0
    DrawImage tausta,800,0
    DrawImage tausta,1600,0
DrawToScreen


posX = 100
    
Repeat

    PosX1 = PosX1 + (KeyDown(cbkeyD)-KeyDown(cbkeyA))*5
    PosY1 = PosY1 + (KeyDown(cbkeyS)-KeyDown(cbkeyW))*5
    
    PosX2 = PosX2 + (RightKey()-LeftKey())*5
    PosY2 = PosY2 + (DownKey()-UpKey())*5
    
    DrawViewWindow( kentta, posX1, posY1, 400, 0, 300,200 )
    DrawViewWindow( kentta, posX1, posY1, 50, 340, 300,200 )

    DrawViewWindow( kentta, posX2, posY2, 40, 20, 300,200 )
    DrawViewWindow( kentta, posX2, posY2, 420, 340, 300,200 )
    
   CenterText ScreenWidth()/2, ScreenHeight()/2-30,"Liikkuu nuolista ja napesita w,s,a,d"

    DrawScreen
Forever
    
Function DrawViewWindow( Game_screen_img, posX,posY, window_x, window_y, width,height )
    DrawImageBox Game_screen_img, window_x, window_y, posX,posY, width, height 
    Box window_x, window_y,width, height,0
EndFunction
    
Edit: Sinun esimerkistä muokatulla tyylillä toinen versio..

Code: Select all

SCREEN 800,600,32,1

kentta=MakeImage(2400,600)
tausta=LoadImage("media/level.bmp")

DrawToImage kentta
    DrawImage tausta,0,0
    DrawImage tausta,800,0
    DrawImage tausta,1600,0
DrawToScreen

screen1 = MakeImage(400,600)
screen2 = MakeImage(400,600)
   
Repeat

    PosX1 = PosX1 + (KeyDown(cbkeyD)-KeyDown(cbkeyA))*5
    PosY1 = PosY1 + (KeyDown(cbkeyS)-KeyDown(cbkeyW))*5
   
    PosX2 = PosX2 + (RightKey()-LeftKey())*5
    PosY2 = PosY2 + (DownKey()-UpKey())*5
    
    DrawToImage Screen1
        Cls
        DrawImageBox kentta,0,0,posX1,posy1,ImageWidth(screen1),ImageHeight(screen1)
        Box 0, 0, ImageWidth(screen1),ImageHeight(screen1),0
        
    DrawToImage Screen2
        Cls
        DrawImageBox kentta,0,0,posX2,posy2,ImageWidth(screen2),ImageHeight(screen2)
        Box 0, 0, ImageWidth(screen1),ImageHeight(screen1),0
        
    DrawToScreen
    
    DrawImage screen1,0,0
    DrawImage screen2,400,0

    DrawScreen
Forever
Tekeillä pikkupelejä ja ohjelmia :)
User avatar
skinkken
Advanced Member
Posts: 453
Joined: Sat Sep 01, 2007 4:00 pm
Location: Helsinki

Re: Split-screen -ongelma

Post by skinkken »

Kiitos paljon! :) Eli siis kaikki kuvat jota piirretään, tehdään taustakuvaan, joka sitten piirretään.
Valmiit pelit: House of Horrors , Battle Zone , Über Ball , Itdoti , Space Chaos , Bloxxplosives
Projekti jota teen ehkä joskus vielä: viewtopic.php?f=11&t=2636 <-- Tämä rivi päivitetty 14.1.2013
Post Reply