相关疑难解决方法(0)

检测Swift中两个对象之间的冲突

在Swift中碰撞检测非常简单 - 但在这个特定项目中,身体碰撞并不didBeginContact像往常一样触发事件.

这是我的两个身体碰撞的清单(使用士兵和子弹):

  1. 加入SKPhysicsContactDelegate课程.
  2. 适当地设置physicsWorld,通常: self.physicsWorld.contactDelegate = self
  3. 为您将拥有的每组节点创建类别.例如let bulletCategory = 0x1 << 0
  4. 为每个子弹和士兵创建SKNodes.
  5. 给每个子弹和士兵一个具有匹配形状的物理体.
  6. 将每个子弹的categoryBitMask设置为bulletCategory(士兵设置为soldierCategory).
  7. 将每个项目符号的contactBitMask设置为soldierCategory(士兵设置为bulletCategory).
  8. 定义didBeginContact()处理程序

以下是我的完整代码.碰撞是最小的~20行"Hello World".

如果您创建一个新的"游戏"并将其复制粘贴到GameScene.swift中,它将会运行,不会触发任何碰撞事件.

//
//  GameScene.swift
//  Thesoldier
//
//  Created by Donald Pinkus on 12/19/14.
//  Copyright (c) 2014 Don Pinkus. All rights reserved.
//

import SpriteKit

class GameScene: SKScene, SKPhysicsContactDelegate {
    var soldier = SKShapeNode(circleOfRadius: 40)

    let soldierCategory:UInt32 = 0x1 << 0;
    let bulletCategory:UInt32 = 0x1 << …
Run Code Online (Sandbox Code Playgroud)

collision-detection ios sprite-kit swift

4
推荐指数
1
解决办法
8857
查看次数

标签 统计

collision-detection ×1

ios ×1

sprite-kit ×1

swift ×1