libgdx与线和多边形的碰撞(Intersector)

时间:2016-06-21 11:41:42

标签: java libgdx collision-detection intersection

我的import SpriteKit class GameScene: SKScene { let Mainball = SKSpriteNode(imageNamed: "Ball") override func didMoveToView(view: SKView) { /* Setup your scene here */ Mainball.size = CGSize(width: 100, height: 100) Mainball.position = CGPoint(x: scene!.frame.width / 2, y: scene!.frame.height / 2) self.addChild(Mainball) } override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { /* Called when a touch begins */ for touch in touches { let location = touch.locationInNode(self) } } override func update(currentTime: CFTimeInterval) { /* Called before each frame is rendered */ } } 游戏有激光,我想知道光束是否会击中它的目标。

我在功能(总是变为真实)时遇到了一些麻烦,所以我做了一个非常简单的测试,我仍然是真的!

我错过了什么吗?

为什么这个函数返回true?

libgdx

提前致谢!

1 个答案:

答案 0 :(得分:0)

当我第一次使用Intersector时,我被抓住了。

intersectLinePolygon()方法适用于无限延伸的线,而不仅仅是指定的两点之间。

使用符合您要求的intersectSegmentPolygon()方法...

if(Intersector.intersectSegmentPolygon(new Vector2(100, 100), new Vector2(200, 100), new Polygon(new float[] {0, 0, 5, 0, 5, 5}))) {
    System.out.println("true");
}