Import mojo
Class MyGame Extends App
' set up the triangle
Field x1:Float=100
Field y1:Float=100
Field x2:Float=100
Field y2:Float=200
Field x3:Float=200
Field y3:Float=100
' collision info
Field col:String
Method OnCreate()
SetUpdateRate(60)
End Method
Method OnUpdate()
If pointintriangle2d(MouseX(),MouseY(),x1,y1,x2,y2,x3,y3)
col="Collision"
Else
col="No Collision"
End If
End Method
Method OnRender()
Cls 0,0,0
SetColor 255,255,255
DrawPoly([x1,y1,x2,y2,x3,y3])
DrawText col,0,0
End Method
End Class
' by RaGR (Ralph G. Roeske). from blitzbasic.com
Function pointintriangle2d(px:Float,pz:Float, x1:Float,y1:Float,x2:Float,y2:Float,x3:Float,y3:Float)
Local bc:Float,ca:Float,ab:Float,ap:Float,bp:Float,cp:Float,abc:Float
bc = x2*y3 - y2*x3
ca = x3*y1 - y3*x1
ab = x1*y2 - y1*x2
ap = x1*pz - y1*px
bp = x2*pz - y2*px
cp = x3*pz - y3*px
abc = Sgn(bc + ca + ab)
If (abc*(bc-bp+cp)>=0) And (abc*(ca-cp+ap)>=0) And (abc*(ab-ap+bp)>=0) Return True
End Function
Function Main()
New MyGame()
End Function
Artificial intelligence/templates/examples/rts/rpg/strategy ect. in MonkeyX/CerberusX language. You can download the free version of MonkeyX from itch.io or Cerberus-x.com The Flash applets will stop working in around 2020.
Sunday, July 17, 2016
Monkey-X - Point in Triangle 2D - code example
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.