我正在设计一个精灵工具包游戏,我想将两个精灵节点(矩形形状)合并在一起,然后将它们作为一个精灵节点进行操作并移动它们?
我一直在搜索很多,但我找不到结果
精灵套件可以吗?我该怎么办?
我会感激任何帮助,谢谢
答案 0 :(得分:0)
将一个节点添加为另一个节点的子节点。如果您将其设置为node2.physicsbody.dynamic=NO;
,它将作为单个节点移动。将有单独的物理实体,但您可以将它们设置为相同的类别位掩码。
此处链接的答案可能有助于表示法:How to detect contact on different areas of a physicsbody
答案 1 :(得分:0)
如果你有两个精灵节点,你只需这样做:
[firstSprite addChild:secondSprite]
答案 2 :(得分:0)
以下是我使用SpriteKit(Swift)获得所需内容的答案
示例:
self.physicsWorld.gravity = CGVectorMake(0, -9.8)
physicsWorld.contactDelegate = self
let sceneBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
sceneBody.friction = 1
self.physicsBody = sceneBody
self.physicsBody?.categoryBitMask = PhysicsCategory.Boarder
self.physicsBody?.contactTestBitMask = PhysicsCategory.None
self.physicsBody?.collisionBitMask = PhysicsCategory.Item
实施例
func mySpritetie1() {
spritetie1 = SKSpriteNode(imageNamed: "img1")
spritetie1.name = kAnimalNodeName
spritetie1.position = CGPoint(x: 170, y: 35)
spritetie1.size = CGSizeMake(36, 100)
spritetie1.physicsBody = SKPhysicsBody(rectangleOfSize: CGSizeMake(22, 100))
spritetie1.physicsBody?.affectedByGravity = false
spritetie1.physicsBody?.categoryBitMask = PhysicsCategory.Item
spritetie1.physicsBody?.collisionBitMask = PhysicsCategory.Boarder
spritetie1.physicsBody?.contactTestBitMask = PhysicsCategory.Monster
self.addChild(spritetie1)
}
func mySpritetie2() {
spritetie2 = SKSpriteNode(imageNamed: "img2")
spritetie2.name = kAnimalNodeName
spritetie2.position = CGPoint(x: 250, y: 60)
spritetie2.size = CGSizeMake(90, 79)
spritetie2.physicsBody = SKPhysicsBody(circleOfRadius: 25)
spritetie2.physicsBody?.affectedByGravity = false
spritetie2.physicsBody?.categoryBitMask = PhysicsCategory.Item
spritetie2.physicsBody?.collisionBitMask = PhysicsCategory.Boarder
spritetie2.physicsBody?.contactTestBitMask = PhysicsCategory.Monster
self.addChild(spritetie2)
}
实施例
let joint = SKPhysicsJointFixed.jointWithBodyA(spritetie1.physicsBody!, bodyB: spritetie2.physicsBody!,
anchor: CGPointMake(CGRectGetMidX(spritetie1.frame), CGRectGetMinY(spritetie2.frame)))
self.physicsWorld.addJoint(joint)
这将在您给出的锚点加入两个身体。
现在,您可以使用SKAction为其中的任何一个(spritetie1或spritetie2)设置动画,另一个将动画,就好像它们是一个并且在您定义的锚点处相同。
如果您认为这个答案有帮助,请批准。希望它会帮助那里的人。
请使用这两个链接了解我的代码中的所有内容:
学习模拟物理https://www.youtube.com/playlist?list=PLa41xEuH5n_pwuNm7Z3L5qxDhVE0sOEqb
的非常基础和好的教程由于