Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Spritekit-如何创建一个类似台球的洞';谁的口袋?_Ios_Swift_Sprite Kit_Game Physics - Fatal编程技术网

Ios Spritekit-如何创建一个类似台球的洞';谁的口袋?

Ios Spritekit-如何创建一个类似台球的洞';谁的口袋?,ios,swift,sprite-kit,game-physics,Ios,Swift,Sprite Kit,Game Physics,我正在创建一个游戏,其中一个球在屏幕上移动,我想创建一个球可以进入的洞(就像在台球中发生的那样) 那会是一个简单的黑色背景的圆吗?在这种情况下,当球越过洞时,我应该把它藏起来(这是一个非常糟糕的效果) 还有其他可用的功能/想法吗? 谢谢在这种情况下,我要做的是为这个洞创建一个SKSpriteNode,只有一个黑色图像作为圆。然后,当两个节点碰撞时,将删除球节点。顺便说一下,我想你是在游戏场景中这样做的 首先,为碰撞检测器创建枚举: enum ColliderType:UInt32 {

我正在创建一个游戏,其中一个球在屏幕上移动,我想创建一个球可以进入的洞(就像在台球中发生的那样)

那会是一个简单的黑色背景的圆吗?在这种情况下,当球越过洞时,我应该把它藏起来(这是一个非常糟糕的效果)

还有其他可用的功能/想法吗?
谢谢

在这种情况下,我要做的是为这个洞创建一个SKSpriteNode,只有一个黑色图像作为圆。然后,当两个节点碰撞时,将删除球节点。顺便说一下,我想你是在游戏场景中这样做的

首先,为碰撞检测器创建枚举:

 enum ColliderType:UInt32 {
    case ball = 1
    case blackhole = 2
}
创建基本黑洞节点

let blackHole:SKNode = SKSpriteNode(imageNamed: "NameOfImage")
    blackHole.physicsBody = SKPhysicsBody(circleOfRadius: side.size.width/2)
    blackHole.physicsBody!.dynamic = false
    //These 3 lines of code basically say to pay attention to collisions
    blackHole.physicsBody!.categoryBitMask = ColliderType.blackhole.rawValue
    blackHole.physicsBody!.contactTestBitMask = ColliderType.ball.rawValue
    blackHole.physicsBody!.collisionBitMask = ColliderType.ball.rawValue
    self.addChild(side)
另外,在设置球的物理属性的地方,插入以下代码

(Name of Sprite).physicsBody!.categoryBitMask = ColliderType.ball.rawValue
(Name of Sprite).physicsBody!.contactTestBitMask = ColliderType.blackhole.rawValue
(Name of Sprite).physicsBody!.collisionBitMask = ColliderType.blackhole.rawValue
然后,这就是检测碰撞的地方

func didBeginContact(contact: SKPhysicsContact)
{
    //variable stores the two things contacting
    let contactMask = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask

    switch(contactMask){

    case ColliderType.ball.rawValue | ColliderType.blackhole.rawValue:
        //deletes the ball as a Node
        contact.bodyB.node?.removeFromParent()


    default:
        return



    }
}

让我知道其中是否有混淆之处,或者我是否需要解释更多,在这种情况下,我会为黑洞创建一个SKSpriteNode,以黑色图像作为圆。然后,当两个节点碰撞时,将删除球节点。顺便说一下,我想你是在游戏场景中这样做的

首先,为碰撞检测器创建枚举:

 enum ColliderType:UInt32 {
    case ball = 1
    case blackhole = 2
}
创建基本黑洞节点

let blackHole:SKNode = SKSpriteNode(imageNamed: "NameOfImage")
    blackHole.physicsBody = SKPhysicsBody(circleOfRadius: side.size.width/2)
    blackHole.physicsBody!.dynamic = false
    //These 3 lines of code basically say to pay attention to collisions
    blackHole.physicsBody!.categoryBitMask = ColliderType.blackhole.rawValue
    blackHole.physicsBody!.contactTestBitMask = ColliderType.ball.rawValue
    blackHole.physicsBody!.collisionBitMask = ColliderType.ball.rawValue
    self.addChild(side)
另外,在设置球的物理属性的地方,插入以下代码

(Name of Sprite).physicsBody!.categoryBitMask = ColliderType.ball.rawValue
(Name of Sprite).physicsBody!.contactTestBitMask = ColliderType.blackhole.rawValue
(Name of Sprite).physicsBody!.collisionBitMask = ColliderType.blackhole.rawValue
然后,这就是检测碰撞的地方

func didBeginContact(contact: SKPhysicsContact)
{
    //variable stores the two things contacting
    let contactMask = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask

    switch(contactMask){

    case ColliderType.ball.rawValue | ColliderType.blackhole.rawValue:
        //deletes the ball as a Node
        contact.bodyB.node?.removeFromParent()


    default:
        return



    }
}

让我知道其中是否有混淆之处,或者我是否需要解释更多,在这种情况下,我会为黑洞创建一个SKSpriteNode,以黑色图像作为圆。然后,当两个节点碰撞时,将删除球节点。顺便说一下,我想你是在游戏场景中这样做的

首先,为碰撞检测器创建枚举:

 enum ColliderType:UInt32 {
    case ball = 1
    case blackhole = 2
}
创建基本黑洞节点

let blackHole:SKNode = SKSpriteNode(imageNamed: "NameOfImage")
    blackHole.physicsBody = SKPhysicsBody(circleOfRadius: side.size.width/2)
    blackHole.physicsBody!.dynamic = false
    //These 3 lines of code basically say to pay attention to collisions
    blackHole.physicsBody!.categoryBitMask = ColliderType.blackhole.rawValue
    blackHole.physicsBody!.contactTestBitMask = ColliderType.ball.rawValue
    blackHole.physicsBody!.collisionBitMask = ColliderType.ball.rawValue
    self.addChild(side)
另外,在设置球的物理属性的地方,插入以下代码

(Name of Sprite).physicsBody!.categoryBitMask = ColliderType.ball.rawValue
(Name of Sprite).physicsBody!.contactTestBitMask = ColliderType.blackhole.rawValue
(Name of Sprite).physicsBody!.collisionBitMask = ColliderType.blackhole.rawValue
然后,这就是检测碰撞的地方

func didBeginContact(contact: SKPhysicsContact)
{
    //variable stores the two things contacting
    let contactMask = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask

    switch(contactMask){

    case ColliderType.ball.rawValue | ColliderType.blackhole.rawValue:
        //deletes the ball as a Node
        contact.bodyB.node?.removeFromParent()


    default:
        return



    }
}

让我知道其中是否有混淆之处,或者我是否需要解释更多,在这种情况下,我会为黑洞创建一个SKSpriteNode,以黑色图像作为圆。然后,当两个节点碰撞时,将删除球节点。顺便说一下,我想你是在游戏场景中这样做的

首先,为碰撞检测器创建枚举:

 enum ColliderType:UInt32 {
    case ball = 1
    case blackhole = 2
}
创建基本黑洞节点

let blackHole:SKNode = SKSpriteNode(imageNamed: "NameOfImage")
    blackHole.physicsBody = SKPhysicsBody(circleOfRadius: side.size.width/2)
    blackHole.physicsBody!.dynamic = false
    //These 3 lines of code basically say to pay attention to collisions
    blackHole.physicsBody!.categoryBitMask = ColliderType.blackhole.rawValue
    blackHole.physicsBody!.contactTestBitMask = ColliderType.ball.rawValue
    blackHole.physicsBody!.collisionBitMask = ColliderType.ball.rawValue
    self.addChild(side)
另外,在设置球的物理属性的地方,插入以下代码

(Name of Sprite).physicsBody!.categoryBitMask = ColliderType.ball.rawValue
(Name of Sprite).physicsBody!.contactTestBitMask = ColliderType.blackhole.rawValue
(Name of Sprite).physicsBody!.collisionBitMask = ColliderType.blackhole.rawValue
然后,这就是检测碰撞的地方

func didBeginContact(contact: SKPhysicsContact)
{
    //variable stores the two things contacting
    let contactMask = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask

    switch(contactMask){

    case ColliderType.ball.rawValue | ColliderType.blackhole.rawValue:
        //deletes the ball as a Node
        contact.bodyB.node?.removeFromParent()


    default:
        return



    }
}

如果有任何问题让我感到困惑,或者我需要进一步解释

如何使用带有口袋图像的sknode,当球碰到它时,您可以更改比例,使其看起来像是从下面消失了whole@Shaun07776真是个好主意,缩小了规模。。!我要去看看。谢谢使用一个带有口袋图像的sknode,当球碰到它时,你可以改变比例,使它看起来像是消失了一样whole@Shaun07776真是个好主意,缩小了规模。。!我要去看看。谢谢使用一个带有口袋图像的sknode,当球碰到它时,你可以改变比例,使它看起来像是消失了一样whole@Shaun07776真是个好主意,缩小了规模。。!我要去看看。谢谢使用一个带有口袋图像的sknode,当球碰到它时,你可以改变比例,使它看起来像是消失了一样whole@Shaun07776真是个好主意,缩小了规模。。!我要去看看。谢谢谢谢你的解释@Brennan!我将缩小球的大小,然后在碰撞后将其从父对象中移除。。!太好了;-)你好,开发人员,需要您的帮助和支持。我是SpriteKit的新手,现在我正在从0开始学习SpriteKit,我需要台球(台球桌)游戏的演示应用程序。我需要学习的目的。我很困惑我该从哪里开始?这将是很好的,如果你给我台球演示应用程序的源代码在斯威夫特。谢谢。谢谢你的解释@Brennan!我将缩小球的大小,然后在碰撞后将其从父对象中移除。。!太好了;-)你好,开发人员,需要您的帮助和支持。我是SpriteKit的新手,现在我正在从0开始学习SpriteKit,我需要台球(台球桌)游戏的演示应用程序。我需要学习的目的。我很困惑我该从哪里开始?这将是很好的,如果你给我台球演示应用程序的源代码在斯威夫特。谢谢。谢谢你的解释@Brennan!我将缩小球的大小,然后在碰撞后将其从父对象中移除。。!太好了;-)你好,开发人员,需要您的帮助和支持。我是SpriteKit的新手,现在我正在从0开始学习SpriteKit,我需要台球(台球桌)游戏的演示应用程序。我需要学习的目的。我很困惑我该从哪里开始?这将是很好的,如果你给我台球演示应用程序的源代码在斯威夫特。谢谢。谢谢你的解释@Brennan!我将缩小球的大小,然后在碰撞后将其从父对象中移除。。!太好了;-)你好,开发人员,需要您的帮助和支持。我是SpriteKit的新手,现在我正在从0开始学习SpriteKit,我需要台球(台球桌)游戏的演示应用程序。我需要学习的目的。我很困惑我该从哪里开始?这将是很好的,如果你给我台球演示应用程序的源代码在斯威夫特。非常感谢。