Swift 3 및 Sprite Kit를 사용하여 게임을 개발 중입니다. 나는 움직여서는 안되지만 충돌을 감지하는 것이 중요합니다. 제 문제는 점들이 약간 움직이고 있다는 것입니다. 너는 움직이지 않는 것을 볼 수는 없지만, 내가 포지션을 프린트하면, 나는 그걸 본다. SpriteKit isDynamic이 거짓 일 때 Sprite가 약간 움직입니다.
for dot in dots {
//dot subclasses SKSpriteNode
dot.name = "dot\(index)"
dot.size = CGSize(width: DotWidth, height: DotHeight)
dot.position = pointFor(column: dot.column, row: dot.row)
dotsLayer.addChild(dot)
//dot.sprite = sprite
dot.physicsBody = SKPhysicsBody(circleOfRadius: 2)
dot.physicsBody?.affectedByGravity = false
dot.physicsBody?.allowsRotation = false
dot.physicsBody?.isDynamic = false
dot.physicsBody?.categoryBitMask = PhysicsCategory.Dot
dot.physicsBody?.contactTestBitMask = PhysicsCategory.Stick
dot.physicsBody?.collisionBitMask = PhysicsCategory.None
dot.physicsBody?.usesPreciseCollisionDetection = true
index += 1
}
내가 affectedByGravity 같은 몇 가지를 시도 (더 중력이없는 경우에도), 및 allowsRotation : 이것은 내가 점을 만드는 방법이다. 한 점 (SKSpriteNode의 하위 클래스)의 위치를 인쇄하면 Optional ((47.9458236694336, 47.9458236694336))을 얻지 만 나중에 동일한 점의 위치를 인쇄하면 Optional ((47.86669921875, 79.892448425293))이 표시됩니다. 그리고 기다리는 시간이 길수록 차이가 커집니다. 쇼 물리학을 켜면 점들이 왼쪽 아래로 내려가는 것을 볼 수 있습니다. 점들을 전혀 움직이지 않는 방법이 있습니까?
은 충돌에 중요하며 충돌에 대응해야하거나 단순히 연락처 정보 제공자로 사용하는 것과 관련이 있습니까? – Confused
점이 전혀 움직이지 않는 경우. 정확한 탐지를 사용하지 말고 움직이는 물체에만 사용하십시오. – Knight0fDragon
@ 혼란 : 연락처 정보로 할 수 있습니다. 그것이 실제로 필요한 유일한 것입니다. 나는 didBegin (_contact : SKPhysicsContact)을 사용합니다. 거기에 다른 방법이 있습니까? – APvG