Code: Select all
SCREEN 640,480,32
FrameLimit 40
ShowMouse OFF
pad=LoadObject("pad.bmp")
tiles=LoadImage("negative.bmp")
tulipallo = LoadObject ("fireball.bmp",180)
PositionObject pad,-140,0
'Luo pelialueen
map=MakeMap(18,10,32,32)
PaintObject map,tiles
'Asetetaan törmäys tunnistukset
SetupCollision tulipallo, map, 1,4,2
SetupCollision pad, map, 1,4,2
SetupCollision tulipallo,pad, 1,1,2
TurnObject tulipallo,38
'Laskee pallon törmäys kulman käänteiseksi
palloplusx#=Cos(ObjectAngle(tulipallo))*4
palloplusy#=Sin(ObjectAngle(tulipallo))*4
'Piirtää pelialuueelle tarvittavat tilet
Gosub Createmap
Repeat
Text 10,10,"Pallon Cos: "+palloplusx#
Text 10,20,"Pallon Sin: "+palloplusy#
Text 200,10,"Mouse world X-axel: "+MouseWX()
Text 200,20,"Mouse world Y-axel: "+MouseWY()
Text 10,50,"Törmäyksiä: "+counter
Box 0,0,640,480,0
'Tarkistaa onko hiirtä liikutettu
Gosub Mousemove
'Tarkistaa onko törmäys tapahtunut
Gosub Collision
'Siirtää hiiren takaisin keskelle uutta vertailua varten
PositionMouse 320,240
DrawScreen
Until EscapeKey()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Mousemove:
' Vertaa onko hiirtä rullattu alaspäin, jolloin objektia siirretään ruudulla alas
If MouseWY() < 0 Then
Text 100,130,"Moving down"
MoveObject pad, 0, -MouseWY() / 14 ' Jaetaan jottei maila liikkuisi liian nopeasto
Else
Text 100,140,"Idle"
EndIf
' Vertaa onko hiirtä rullattu ylöspäin, jolloin objektia siirretään ruudulla ylös
If MouseWY() > 0 Then
Text 100,130,"Moving up"
MoveObject pad, 0, -MouseWY() / 14
Else
Text 100,140,"Idle"
EndIf
Return
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Createmap:
For x=1 To MapWidth()
EditMap map,0,x,1,2 'Piirto taso
EditMap map,2,x,1,1 'Törmäys taso
Next x
For y=2 To MapHeight()-1
EditMap map,0,1,y,2
EditMap map,2,1,y,1
Next y
For y=2 To MapHeight()-1
EditMap map,0,18,y,2
EditMap map,2,18,y,1
Next y
For x=1 To MapWidth()
EditMap map,0,x,10,2
EditMap map,2,x,10,1
Next x
Return
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Collision:
TranslateObject tulipallo,palloplusx#,palloplusy#
TurnObject tulipallo,20
If CountCollisions(tulipallo) = 1 Then
angle=CollisionAngle(tulipallo,1)
If angle=0 Or angle=180 Then
palloplusx#= -palloplusx#
EndIf
If angle=90 Or angle=270 Then
palloplusy#= -palloplusy#
EndIf
TranslateObject tulipallo,palloplusx#,palloplusy#
EndIf
'Törmäys laskuri
If CountCollisions(tulipallo) = 1 Then counter=counter+1
Return