Thx sain nyt tehty function noilla.temu92 wrote:Jaa tuollaista yrität. Jos käytät objektien omia kulmia, voit tarkistaa mahdolliset tulevat törmäykset käytämällä PickObject:ia. En muista nyt juuri sen tarkkoja ominaisuuksia (eli saiko pikselintarkkana).
Code: Select all
SCREEN 800,600
car = LoadObject("Media\car2.bmp",90)
guy = LoadObject("Media\pacman.bmp")
'guy = LoadObject("Media\car.bmp")
PositionObject car,100,100
PositionObject guy,-100,100
RotateObject car,180
Const MoveSpeed=4
Const TurnSpeed=2
ObjectPickable guy,3
Repeat
MoveObject car,(KeyDown(cbkeyW)+UpKey())*MoveSpeed-(KeyDown(cbkeyS)+DownKey())*MoveSpeed
TurnObject car,(KeyDown(cbkeyA)-RightKey())*TurnSpeed-(KeyDown(cbkeyD)-LeftKey())*TurnSpeed
osuu=HitPossible(car,guy)
DrawGame
Line2(ObjectX(car)+ScreenWidth()/2,ScreenHeight()/2-ObjectY(car),ObjectAngle(car),osuu)
If osuu>0 Then Text 10,30,"Osuu" Else Text 10,30,"Ei osu"
Text 10,10,"FPS: "+FPS()
Text 10,50,"Etäisyys: "+osuu
DrawScreen
Forever
Function Line2(x#,y#,ang#,pituus#)
Line x#,y#,x# + Cos(ang#)*pituus#,y# - Sin(ang#)*pituus#
EndFunction
Function HitPossible(obj1,obj2)
ObjectPick obj1
o=PickedObject()
If o = obj2 Then
Return Distance(PickedX(),PickedY(),ObjectX(obj1) ,ObjectY(obj1) )
EndIf
EndFunction