Oculus Rift
Posted: Sat May 18, 2013 3:51 pm
Moimoi,
Kickstarterissa tukemani Oculus Rift -3D-lasit tulivat ja kasailin CB:llä pienen demon asiasta. Jos jollain tutulla sattuu myös olemaan, voi tuolla testailla 2D-syvyysefektiä. Tilekartan lattia- ja seinäkerrokset sekä pelaajahahmo ovat eri korkeudella. Demon pohjana on käytetty Mistheman tekemää splitscreen-esimerkkiä.
Vastailen mielelläni laseja koskeviin kysymyksiin.
EDIT: Laiskoille linkkiä valmiikseen pakettiin http://mikeful.kapsi.fi/files/temp/cb_o ... mo_001.zip
Kickstarterissa tukemani Oculus Rift -3D-lasit tulivat ja kasailin CB:llä pienen demon asiasta. Jos jollain tutulla sattuu myös olemaan, voi tuolla testailla 2D-syvyysefektiä. Tilekartan lattia- ja seinäkerrokset sekä pelaajahahmo ovat eri korkeudella. Demon pohjana on käytetty Mistheman tekemää splitscreen-esimerkkiä.
Vastailen mielelläni laseja koskeviin kysymyksiin.
EDIT: Laiskoille linkkiä valmiikseen pakettiin http://mikeful.kapsi.fi/files/temp/cb_o ... mo_001.zip
Code: Select all
SCREEN 1280,800, 0 ,0
FrameLimit 60
// Silmien välinen etäisyyys
IPD = 64
// Kerrosmuuttujat
syvyys = -1
karttasyvyys = -2
// Copy-pastea Mistheman splitscreen-esimerkistä
// http://www.coolbasic.com/phpBB3/viewtopic.php?f=12&t=3001
// 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 )
//kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
kartta = LoadMap("Media\testmap.til","Media\tileset.bmp")
PlayObject kartta,0,0,1
ukko = LoadObject ("Media\guy.bmp",72)
PositionObject ukko, 0, 100
SetupCollision ukko, kartta, 1, 4, 2
Repeat
//Ukon ohjaus
If LeftKey() Then TurnObject ukko,5
If RightKey() Then TurnObject ukko,-5
If UpKey() Then MoveObject ukko,2
If DownKey() Then MoveObject ukko,-2
If KeyHit(cbkeyf1) Then IPD = IPD - 1
If KeyHit(cbkeyf2) Then IPD = IPD + 1
UpdateGame
// Vasemman silmän bufferin luominen
Cls
// Kameran liikutus ja siirto silmän välien mukaan
CloneCameraPosition ukko
TranslateCamera -IPD, 0
// Lattiakerroksen piirto tilekartasta
SetMap kartta, 1, 0
ShowObject ukko, 0
DrawGame
// Seinäkerroksen ja ukon piirto
SetMap kartta, 0, 1
ShowObject ukko, 1
TranslateObject ukko, -syvyys, 0
TranslateObject kartta, -karttasyvyys, 0
DrawGame
// Kartan ja ukon reset
TranslateObject kartta, karttasyvyys, 0
TranslateObject ukko, syvyys, 0
CopyBox (SW/2)-(splitW/2), 0, splitW, splitH, 0, 0, SCREEN(), Image(buf1)
// Vasemman silmän bufferin luominen loppuu
// Oikean silmän bufferin luominen
Cls
// Kameran liikutus ja siirto silmän välien mukaan
CloneCameraPosition ukko
TranslateCamera IPD, 0
// Lattiakerroksen piirto tilekartasta
SetMap kartta, 1, 0
ShowObject ukko, 0
DrawGame
// Seinäkerroksen ja ukon piirto
SetMap kartta, 0, 1
ShowObject ukko, 1
TranslateObject ukko, syvyys, 0
TranslateObject kartta, karttasyvyys, 0
DrawGame
// Kartan ja ukon reset
TranslateObject kartta, -karttasyvyys, 0
TranslateObject ukko, -syvyys, 0
CopyBox (SW/2)-(splitW/2), 0, splitW, splitH, 0, 0, SCREEN(), Image(buf2)
// Oikean silmän bufferin luominen
// Bufferien piirto ruudulle
Cls
DrawImage buf1, 0, 0
DrawImage buf2, splitW, 0
// Tekstit
Color 255,255,255
Text 0,10, "IPD: " + IPD + "px"
Text 0,20,"FPS: " + FPS()
DrawScreen
Forever