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游戏开发经典实例
42
1
它产生的数字序列类似如下:
2, 4, 3, 6, 1, 5, 1, 6, 4, 3
讨论
真正的随机数,如
GKRandomDistribution
生成器生成的随机数,会让玩家感觉并
不公平,因为人们无法真正理解概率问题。例如在著名的“赌徒谬论”中,在游戏
中,那些输得比较多的人会继续尝试,因为他们觉得下一次肯定会赢,而实际上,
每一次的输赢之间并没有必然关系。
有两种常见的色子,六面的和
20
面的。要创建
0
6
之间或者
0
20
之间随机数
的生成器,可以使
d6
d20
数:
let d6 = GKRandomDistribution.d6()
let d20 = GKRandomDistribution.d20()
1.21
编写状态机
问题
你想在游戏中使用状态机来管理不同状态。
解决方案
状态机是一种允许你定义一个系统能够有几种状态的机制。该系统在同一时刻下只
能拥有一种状态;此外,该系统的每种状态都存在一个能够转换到其他状态的列表。
例如,假设某系统有
3
种状态:坐、站、走。你可以从坐转换成站(或者相反),
从站转换成走。但是,不能直接从坐转换成走,必须先转换成站再变成走。
当你从一种状态转换到另一种状态时,你都会获得执行代码的机会。继续以之前的
例子为例,当你转换到站状态,你可以让角色显示站起来的动作。
状态机可以用于管理一个系统可能存在的状态,以及它们之间的转换。
游戏的设计
43
GameplayKit
提供了
GKStateMachine
类,你可以用它管理不同状态的转换。要使用
GKStateMachine ...
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