Code: Select all
SCREEN 800,600,32,1
FrameLimit 35
ruoho=LoadImage("media/grass.bmp")
maa=MakeObjectFloor()
PaintObject maa,ruoho
mopo = LoadObject ("Media\suzukipv.bmp",72)
mopo1 = LoadObject ("Media\suzukipv2.bmp",72)
auto = LoadObject ("Media\corolla.bmp",72)
ukko = LoadObject ("Media\ukko.bmp",72)
PositionObject ukko,-100,100
PositionObject mopo,-110,110
PositionObject mopo1,-110,110
SetupCollision auto,ukko,2,2,2
SetupCollision ukko,auto,2,2,2
SetupCollision auto,mopo,2,2,2
SetupCollision mopo,auto,2,2,2
SetupCollision auto,mopo1,2,2,2
SetupCollision mopo1,auto,2,2,2
maxnopeus= 15'maksiminopeus
Repeat
If mopossa=1 Then
ShowObject mopo,OFF
ShowObject ukko,OFF
ShowObject mopo1,ON
CloneObjectPosition ukko,mopo1
CloneObjectPosition mopo,mopo1
If LeftKey() Then TurnObject mopo, 3
If RightKey() Then TurnObject mopo, -3
If UpKey() And nopeus#<maxnopeus Then
nopeus#= nopeus#+.5
If nopeus<0 Then nopeus=0
EndIf
If UpKey()
'Lasketaan auton liike x ja y suunnissa
If NopeusX#>Cos(MopoKulma)*nopeus# Then NopeusX#=NopeusX#-1
If NopeusX#<Cos(MopoKulma)*nopeus# Then NopeusX#=NopeusX#+1
If NopeusY#>Sin(MopoKulma)*nopeus# Then NopeusY#=NopeusY#-1
If NopeusY#<Sin(MopoKulma)*nopeus# Then NopeusY#=NopeusY#+1
EndIf
If KeyHit(cbkeyreturn) Then mopossa=0
EndIf
'Jos ollaan autossa
If autossa=1 Then
'Piilotetaan ukko ja sijoitetaan se autoon
ShowObject ukko,OFF
CloneObjectPosition ukko,auto
'Auton Ohjaus
If LeftKey() Then TurnObject auto, 3
If RightKey() Then TurnObject auto, -3
If UpKey() And nopeus#<maxnopeus Then
nopeus#= nopeus#+.5
If nopeus<0 Then nopeus=0
EndIf
If DownKey() And nopeus#>-maxnopeus/3 Then
nopeus#= nopeus#-.5
If nopeus>0 Then nopeus=0
EndIf
If UpKey() Or DownKey()
'Lasketaan auton liike x ja y suunnissa
If NopeusX#>Cos(AutoKulma)*nopeus# Then NopeusX#=NopeusX#-1
If NopeusX#<Cos(AutoKulma)*nopeus# Then NopeusX#=NopeusX#+1
If NopeusY#>Sin(AutoKulma)*nopeus# Then NopeusY#=NopeusY#-1
If NopeusY#<Sin(AutoKulma)*nopeus# Then NopeusY#=NopeusY#+1
EndIf
'Autosta poistutaan painamalla enteriä
If KeyHit(cbkeyreturn) Then autossa=0
EndIf
'Jos ei olla autossa
If autossa=0 Or mopossa=0 Then
ShowObject ukko,ON'näytetään ukko
ShowObject mopo1,OFF
ShowObject mopo,ON
'Ukon ohajus
If LeftKey() Then TurnObject ukko,5
If RightKey() Then TurnObject ukko,-5
If UpKey() Then MoveObject ukko,3
If DownKey() Then MoveObject ukko,-2
'Mennään autoon jos ollaan tarpeeksi lähellä
If Distance2(ukko,auto)<100 And Distance2(ukko,auto)>20 And KeyHit(cbkeyreturn) Then meeautoon=1
'Jos ollaan menossa autoon
If meeautoon=1
PointObject ukko,auto
MoveObject ukko,3
If Distance2(ukko,auto)<60 Then autossa=1
EndIf
EndIf
If autossa=1 Then meeautoon=0
If Distance2(ukko,mopo)<100 And Distance2(ukko,mopo)>20 And KeyHit(cbkeyreturn) Then meemopoon=1
'Jos ollaan menossa autoon
If meemopoon=1
PointObject ukko,mopo
MoveObject ukko,3
If Distance2(ukko,mopo)<60 Then mopossa=1
EndIf
If mopossa=1 Then meemopoon=0
'Auton liike
AutoKulma=ObjectAngle(Auto)
TranslateObject auto,NopeusX#,NopeusY#
If nopeusX# <>0 Then nopeusX#= nopeusX#*0.99
If nopeusX#>-1 Or nopeusX<1 Then nopeusX#= nopeusX#*0.99
If nopeusY# <>0 Then nopeusY#= nopeusY#*0.99
If nopeusY#>-1 Or nopeusY<1 Then nopeusY#= nopeusY#*0.99
MopoKulma=ObjectAngle(Mopo)
TranslateObject mopo1,NopeusX#,NopeusY#
If nopeusX# <>0 Then nopeusX#= nopeusX#*0.99
If nopeusX#>-1 Or nopeusX<1 Then nopeusX#= nopeusX#*0.99
If nopeusY# <>0 Then nopeusY#= nopeusY#*0.99
If nopeusY#>-1 Or nopeusY<1 Then nopeusY#= nopeusY#*0.99
'Kamera seuraa ukkoa
CloneCameraPosition ukko
DrawGame
DrawScreen
Until EscapeKey()