我的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
提前致谢!
答案 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");
}