AR Defence
網媒二 R06944024 曾郁翔
登入與資料庫
遊戲暫停與關卡
旋轉問題
Facebook login
使用 Facebook SSO Login
同時,有小名模式,不需要留真實資料
Google Firebase 資料庫
即時同步分數資料,
不過與 ARKit 的多人模式 Protocol 會打架需則一
遊戲暫停與關卡
使用三種方法暫停遊戲邏輯
對敵機, 飛彈與敵機生成飛彈的邏輯需要關掉
ViewController.swift
Entity.swift
遊戲暫停 1/2
@objc func pauseAction(sender: UIButton!) {
isPause = !isPause //On/Off 切換
sceneView.scene.physicsWorld.speed = isPause ? 0 : 1 //set physics world speed to zero 但是實際的 iOS 的 Update 值並不會停止
sceneView.scene.isPaused = isPause //true 物理世界停止,但是其他的物件持續運動
for entity in entities {
entity.isPause = isPause //所有 entity 皆可以暫停
}
}
//同時,要把 Entity 的 update function 內的調用 position 的 if 去做條件去除
if isMobile, !isPause, let target = target, let lookAtPoint = lookAtPoint {
let nodePos = node.position
...
node.position = SCNVector3(nodePos.x + distRaw.x * speedFactor, nodePos.y + distRaw.y * speedFactor, nodePos.z + distRaw.z * speedFactor)
EnemyShip.swift
遊戲暫停 2/2
// 母機暫停停止發飛彈,但已經發出去的物理還是會執行,只是不會碰撞。
// 1/120 chance of firing per frame.
if !super.isPause && arc4random_uniform(500) == 0 {
fire(view, target: position)
}
最後,我們要將停止中的敵機停止產生飛彈
AR Defence
By txshon Tseng
AR Defence
- 339