基于Sprite Kit的游戏开发实战
1. 碰撞检测与处理
在游戏开发中,碰撞检测是一个重要的环节。其核心思路是判断两个碰撞对象是否属于同一类别,如果是同一类别,它们就是“友方”;如果是不同类别,则需要确定谁是攻击者。在定义的类别中,类别是按照“攻击性”递增的顺序排列的,例如玩家节点可被敌人节点攻击,而敌人节点又可被玩家的导弹节点攻击,所以可以通过简单的大于比较来确定攻击者。
为了实现模块化和简化代码,不希望场景来决定每个对象在被敌人攻击或与其他对象碰撞时的反应,而是将这些细节构建到受影响的节点类本身。可以使用多态性让每个节点类以自己的方式处理这些情况,这需要为 SKNode
添加方法,并提供默认实现,让子类在需要时进行重写,这就需要使用类扩展。
添加类扩展到SKNode的步骤 :
1. 在Xcode的项目导航器中,右键点击 TextShooter
文件夹,从弹出菜单中选择 New File…
。
2. 在助手的 iOS/Source
部分,选择 Swift File
,然后点击 Next
。
3. 将文件命名为 SKNode+Extra.swift
,并点击 Create
。
4. 在编辑器中打开该文件,添加以下代码:
import Foundation
import SpriteKi