Skip to Content
Swift游戏开发经典实例
book

Swift游戏开发经典实例

by Jonathon Manning, Paris Buttfield-Addison
January 2020
Intermediate to advanced
356 pages
6h 4m
Chinese
China Electric Power Press Ltd.
Content preview from Swift游戏开发经典实例
游戏的设计
19
讨论
注意,每帧耗时会“随时变化”。每帧耗时主要用于实时跟踪每帧刷新时所耗费的
时间
,
在游戏中,这意味着从这一帧到下一帧所耗费的时间。因为游戏内容总是根
据帧来进行改变,两帧之间的时间值就变得很重要了。
此外,帧与帧之间的每帧耗时并不是一成不变的。按理来说,如果游戏刷新率为每
60
帧,则游戏的每帧耗时应该是一个常量:
16
毫秒(即
1
÷
60 = 0.0166
);但
实际上根本不是这么回事,每帧耗时会根据每一帧在刷新时需要处理事情的多少而
定。也就是说,每帧耗时总是在一个小范围内变动,因此当我们想让状态的改变与
屏幕显示一致时,计算每一帧的每帧耗时就变得很有必要。
有时候引擎会直接给出每帧耗时,例如
CADisplayLink
duration
属性(详见本
1.8
节)。
有些引擎只提供当前时间,你可以根据它计算出每帧耗时。例如,
SKScene
类会在
update
方法中传递一个
currentTime
参数(详见第
7
7.15
节)。
还有的时候(例如,在你自己的主循环中),你两种值都无法获得。在这种情况下,
你必须自己获取当前时间:
let currentTime = Date.timeIntervalSinceReferenceDate as Double
1.6
进入和退出游戏
问题
有时候需要知道用户何时离开游戏,这样我们可以让游戏暂时停止。当用户回到游
戏时,我们也要及时知道。
解决方案
要想在用户进入、退出游戏时得到通知,我们需要向
NSNotificationCenter
(通知
中心)进行注册。我们需要接收以下类型的通知: ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

精通機器學習

精通機器學習

Aurélien Géron
FreeBSD® Unleashed

FreeBSD® Unleashed

Brian Tiemann, Michael C. Urban
深入淺出代數

深入淺出代數

Tracey Pilone, Dan Pilone
Swift学习手册

Swift学习手册

Jon Manning, Paris Buttfield-Addison, Tim Nugent

Publisher Resources

ISBN: 9787519840129