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游戏开发经典实例
存储数据
165
解决方案
答案很简单:不抛弃数据。如果游戏能够存储数据,那么它就应该保存游戏的状态。
在一个
iOS
游戏中,不要以为用户会手动保存游戏,我们应当利用每个可能的机会
自动保存数据。
讨论
如果因为一个呼入的电话而导致用户丢失了他的游戏进度,这是最令人糟心的事情。
不要为此惹恼你的用户:请定期保存游戏的状态!
5.9
游戏中的财富值
问题
我们需要记录游戏中的资源数,如玩家所拥有的财富值。
解决方案
这种功能需求会因不同游戏而异。当然,在许多游戏中,财富值都是比较常见的,
因此这里给出了一个处理的办法。
在这个例子中,假设有两种不同的货币:钻石和金币。钻石是固定资产,从这一关
到下一关都存在。金币是消耗品,当游戏结束时会清零。为了同时支持这两种货币,
我们用一个计算属性来存放钻石数,并将这个值放到
UserDefaults
中,同时将金
币数放到内存里(当游戏结束时清零):
class CurrencyManager {
var gold : Int = 0
var gems : Int {
set(value) {
//
将钻石数放到用户
Defaults
系统
UserDefaults.standard.set(value, forKey: "gems")
}
get {
//
从用户
Defaults
系统取回钻石数
return UserDefaults.standard.integer(forKey: "gems")
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