Pienen säätämisen jälkeen sain aikaan 3d-tunnelin jossa voisi vaikka autolla
ajella. se on tylsän kaksivärinen enkä itse ainakaa vielä jaksa alkaa siitä mitään
suurempaa tekemään.
näppäimet:
ylänuoli..........Kaasu
alanuoli.........Jarru/pakki(voi pakittaa pois tunnelissa-bugi)
sinuvuolet......liikutaan sivuttaissuunnassa
Olkaa hyvät.
Code: Select all
SCREEN 800,600
FrameLimit 40
'auton nopeus(nopeus jolla viivat tulee päin näköä)
speed# = 1
'tyyppi seinille
Type seina
Field x#
Field y#
Field z#
Field korkeus#
EndType
'määrä, paljonko autoa ohjataan sivulle
steerx# = 0
'seinät vasemmalle puolelle
For i = 1 To 15
uusiseina.seina = New(seina)
uusiseina\x = steerx + 7
uusiseina\y = -5
uusiseina\z = -5 * i
uusiseina\korkeus = 10
Next i
'seinä oikealle puolelle
For i = 1 To 15
uusiseina.seina = New(seina)
uusiseina\x = steerx - 7
uusiseina\y = -5
uusiseina\z = -5 * i
uusiseina\korkeus = 10
Next i
Repeat
steerx# = 0
If UpKey() Then speed = speed + 0.02
If DownKey() Then speed = speed - 0.02
If LeftKey() Then steerx = -0.1
If RightKey() Then steerx = 0.1
For iseina.seina = Each seina
iseina\z = iseina\z + speed
'jos seinä tulee tarpeeksi lähelle siirretään se kauemmas
If iseina\z > -2 Then iseina\z = -75
iseina\x = iseina\x + steerx
'piirretään pystysuorassa olevat viivat
line3d( iseina\x, iseina\y, iseina\z, iseina\x, iseina\y + iseina\korkeus, iseina\z )
'piirretään vaakasuorassa olevat viivat
line3d( iseina\x, iseina\y, iseina\z, iseina\x, iseina\y, iseina\z + 10 )
Next iseina
DrawScreen
Forever
Function line3D( x#, y#, z#, x2#, y2#, z2# )
If z# > 0 Then Return 0
If z# = 0 Then z# = -0.01
p_s# = (1/z#)*100
sx = x# * p_s# + ScreenWidth()/2
sy = y# * p_s# + ScreenHeight()/2
'----------------------
If z2# > 0 Then Return 0
If z2# = 0 Then z2# = -0.01
p_s2# = (1/z2#)*100
sx2 = x2# * p_s2# + ScreenWidth()/2
sy2 = y2# * p_s2# + ScreenHeight()/2
'------------------------
Line sx,sy,sx2,sy2
EndFunction