Koodi toimii kaikilla resoluutioilla, mutta jostain syystä pelaajat katoavat, jos ne menevät alle 0,0 koordinaattien, eli ulos "ruudusta". En sitten tiedä, kuinka tämän voisi korjata. :/
Pelaajat eivät tosin katoa, vaikka menisivät esimerkiksi 1000,1000 koordinaatteihin, ruudun resoluution ollessa vähemmän.
Koodia:
Code: Select all
SCREEN 800,600
// Ruudun koko
SW = ScreenWidth()
SH = ScreenHeight()
// Pelaajien ruudun koko
splitW = SW / 2
splitH = SH
// Pelaajien ruutujen kuvapuskurit (image buffer)
buf1 = MakeImage( splitW, splitH )
buf2 = MakeImage( splitW, splitH )
// Pelaajan #1 koordinaatit
x1 = 100
y1 = 100
// Pelaajan #2 koordinaatit
x2 = 300
y2 = 100
ClsColor 32,32,32
Repeat
// Pelaajan #1 liikkuminen
If KeyDown(cbKeyA) Then x1 = x1 - 1
If KeyDown(cbKeyD) Then x1 = x1 + 1
If KeyDown(cbKeyW) Then y1 = y1 - 1
If KeyDown(cbKeyS) Then y1 = y1 + 1
// Pelaajan #2 liikkuminen
If KeyDown(cbKeyLeft) Then x2 = x2 - 1
If KeyDown(cbKeyRight) Then x2 = x2 + 1
If KeyDown(cbKeyUp) Then y2 = y2 - 1
If KeyDown(cbKeyDown) Then y2 = y2 + 1
// Palloja!
a# = WrapAngle(a + 1)
Color 255, 255, 255
For i=0 To 9
x# = 200 + Cos( a + (36 * i) ) * 100
y# = 150 - Sin( a + (36 * i) ) * 100
Circle x - 2, y - 2, 5, 5
Next i
// Pelaajien pallot
Color 255,0,0
Circle x1,y1, 10,10
Color 0,0,255
Circle x2,y2, 10,10
box1_X = x1 - splitW / 2 // Pelaajan #1 ruudun vasen yläkulma
box1_Y = y1 - splitH / 2
box2_X = x2 - splitW / 2 // Pelaajan #2 ruudun vasen yläkulma
box2_Y = y2 - splitH / 2
// Ruudunpuolikkaiden kopiointi kuvapuskureihin
CopyBox box1_X, box1_Y, splitW, splitH, 0, 0, SCREEN(), Image(buf1)
CopyBox box2_X, box2_Y, splitW, splitH, 0, 0, SCREEN(), Image(buf2)
Cls
// Piirretään pelaajien ruudut vierekkäin
DrawImage buf1, 0, 0
DrawImage buf2, splitW, 0
// Valkoiset reunat laatikoille
Color 255,255,255
Box 0, 0, splitW, splitH, 0
Box splitW, 0, splitW, splitH, 0
// Aputekstejä
Text 0,0,"WASD-näppäimet"
Text 0,10,"X ja Y: " + x1 + ", "+ y1
Text splitW,0,"Nuolinäppäimet"
Text splitW,10,"X ja Y: " + x2 + ", "+ y2
DrawScreen
Forever