- 商品参数
-
- 作者:
曹化宇著|
暂无编|
暂无译|
暂无绘
- 出版社:清华大学出版社
- 出版时间:2017-01-01
- 版次:1
- 字数:472000
- 页数:296
- 开本:16开
- 装帧:平装
- ISBN:9787302453703
- 版权提供:清华大学出版社
基本信息
书名:Objective-C和Sprite Kit游戏开发从入门到精通
定价:59.00元
作者:曹化宇
出版社:清华大学出版社
出版日期:2017-01-01
ISBN:9787302453703
字数:
页码:
版次:1
装帧:平装-胶订
开本:16开
商品重量:0.4kg
编辑推荐
一线程序员撰写,凝聚自己多年开发经验结晶,系统且深入阐释Objective-C和Sprite Kit游戏开发涉及的工具、方法和实践 由浅入深剖析Objective-C和Sprite Kit游戏开发过程中遇到的各个层面的问题,涉及Xcode、Objective-C、Foundation框架、Sprite Kit以及游戏开发相关技术等
内容提要
本书是一线程序员凝聚自己多年开发经验的结晶之作,深入浅出地讲解Objective-C语言、Foundation框架、Sprite Kit框架,以及其他开发iOS和Mac游戏所需要的基础知识,帮助读者零基础实践iOS和Mac游戏开发。本书内容可以分为四个部分,*部分(第1~5章)介绍如何使用Xcode和Objective-C语言编写程序;第二部分(第6~12章)讨论Foundation框架中常用的开发资源,这些资源不但可以为游戏开发服务,同样也可以应用于各种类型的iOS或OS X应用开发;第三部分(第13~18章)讨论Sprite Kit在游戏开发中的应用;第四部分(第19~23章)讨论游戏开发相关的技术,如网络状态检测、Game Center排行榜、应用内购买等。本书内容安排合理,架构清晰,注重理论与实践相结合,适合作为零基础学习iOS和Mac游戏开发的初学者的教程,也适合作为有编程基础的程序员的参考手册。
目录
第1章准备工作 ·························1
1.1 本书内容 ···································· 1
1.2 使用Xcode ·································· 2
1.3 个Objective-C程序 ·················· 4
1.4 获取帮助 ···································· 7
第2章 Objective-C开发基础·········8
2.1 代码文件 ···································· 9
2.2 注释 ·········································12
2.3 变量 ·········································12
2.4 常量 ·········································13
2.5 整数 ·········································15
2.5.1 取值范围 ····································15
2.5.2 算术运算 ····································16
2.5.3 NSLog函数与格式化输出 ·············17
2.5.4 组合运算符 ·································17
2.5.5 增量与减量运算 ···························18
2.5.6 二进制与位运算 ···························18
2.6 浮点数 ······································23
2.7 布尔类型 ···································24
2.7.1 BOOL类型 ··································24
2.7.2 布尔运算 ····································25
2.8 字符 ·········································26
2.9 指针 ·········································28
2.10 自定义函数 ······························29
2.10.1 返回值类型 ·······························30
2.10.2 函数名 ·····································30
2.10.3 参数 ········································30
2.10.4 参数指针 ··································31
2.11 static关键字 ······························32
2.12 块(block) ······························33
2.13 枚举 ·······································35
2.14 结构 ·······································37
2.15 随机数 ····································38
2.16 预处理 ····································38
2.16.1 #defi ne和#undef指令 ····················39
2.16.2 条件编译指令 ····························39
2.16.3 #import指令 ·······························40
第3章代码流程控制 ················· 41
3.1 比较运算 ···································41
3.2 条件语句 ···································42
3.2.1 if语句 ········································42
3.2.2 :运算符 ·····································43
3.3 选择语句 ···································44
3.4 循环语句 ···································46
3.4.1 for语句结构 ································46
3.4.2 while语句结构 ·····························47
3.4.3 do-while语句结构 ·························47
3.4.4 break语句 ···································48
3.4.5 continue语句 ·······························48
3.5 goto语句与标签 ··························49
3.6 异常处理 ···································49
第4章面向对象编程 ················· 51
4.1 面向对象编程基础 ·······················51
4.2 类与对象 ···································53
4.2.1 接口部分 ····································53
4.2.2 实现部分 ····································54
4.2.3 创建对象(实例化) ·····················55
4.2.4 类的成员 ····································56
4.3 方法(任务) ·····························58
4.3.1 创建方法 ····································58
4.3.2 description方法与NSLog函数 ·········61
4.4 属性 ·········································61
4.4.1 使用@proeprty和@synthesize指令 ·····62
4.4.2 使用setter和getter方法 ···················63
4.5 初始化方法 ································64
4.6 继承 ·········································65
4.6.1 成员的访问 ·································65
4.6.2 重写属性和方法 ···························67
4.6.3 继承关系中的初始化 ·····················67
4.7 分类 ·········································69
4.7.1 命名分类 ····································70
4.7.2 匿名分类 ····································71
4.8 对象复制与传递 ··························71
4.8.1 对象的复制 ·································71
4.8.2 对象作为参数 ······························72
4.9 动态处理类和对象 ·······················72
4.9.1 对象类型判断 ······························72
4.9.2 方法存在判断 ······························73
4.9.3 动态调用方法 ······························74
第5章协议····························· 75
5.1 创建协议 ···································75
5.2 实现协议 ···································76
5.3 可选成员 ···································77
5.4 实现多个协议 ·····························78
5.5
对象深复制(实现NSCopying
协议)······································79
第6章数组、集合与字典··········· 82
6.1
C风格数组 ·································82
6.2
不可变数组(NSArray类型)·········84
6.2.1 创建NSArray对象 ·························84
6.2.2 数字对象(NSNumber类) ·············84
6.2.3 使用NSValue 类 ····························85
6.2.4 数组成员操作 ······························86
6.2.5 保存与载入 ·································87
6.3 可变数组(NSMutableArray类型)··88
6.3.1 创建NSMutableArray对象 ···············89
6.3.2 添加成员 ····································89
6.3.3 删除成员 ····································90
6.3.4 替换成员 ····································90
6.4 集合(Set) ·······························91
6.4.1 不可变集合(NSSet类) ················91
6.4.2 可变集合(NSMutableSet类) ·········92
6.5 字典(NSDictionary) ··················93
6.5.1 创建字典对象 ······························93
6.5.2 常用成员 ····································93
6.5.3 NSMutableDictionary类 ··················94
第7章字符串·························· 96
7.1 C风格字符串 ······························96
7.2 不可变字符串(NSString类) ·········97
7.2.1 创建NSString对象 ·························97
7.2.2 返回字符数量 ······························98
7.2.3 截取子字符串和字符 ·····················98
7.2.4 大小写转换 ·································99
7.2.5 转换为C风格字符串 ······················99
7.2.6 字符串比较与匹配 ······················ 100
7.2.7 转换为数值 ······························· 101
7.2.8 保存与读取 ······························· 101
7.3
可变字符串(NSMutableString
类)······································· 102
7.3.1 创建NSMutableString对象············· 102
7.3.2 NSMutableString常用成员············· 102
7.4 使用NSURL类 ·························· 103
第8章本地化字符串················105
8.1 判断系统语言类型 ·····················105
8.2 NSLocalizedString······················ 106
8.3 NSLocalizedStringFromTable ·········107
8.4 综合应用 ································· 108
第9章日期与时间···················109
9.1 NSDate类 ································ 109
9.1.1 获取时间信息 ···························· 110
9.1.2 时间的计算和比较 ······················ 110
9.2 NSDateComponents类 ················· 111
9.3 NSCalendar类··························· 112
9.4 时区与区域设置 ························ 113
9.4.1 NSTimeZone 类 ··························· 113
9.4.2 NSDateFormatter类 ·····················114
9.4.3 NSLocale类······························· 115
9.5 封装CDate类···························· 115
9.5.1 初始化方法 ······························· 117
9.5.2 时间、区域和时区 ······················ 118
9.5.3 日期与时间数据 ························· 119
9.5.4 测试 ········································ 120
9.6 获取中国农历信息 ·····················120
9.6.1 初始化方法 ······························· 121
9.6.2 年份与名称 ······························· 122
9.6.3 月份与名称 ······························· 123
9.6.4 日期与名称 ······························· 124
9.6.5 属相 ········································ 125
9.6.6 测试 ········································ 125
第10章文件与目录·················127
10.1 获取系统信息 ························· 127
10.1.1 获取文稿目录(Documents) ······· 128
10.1.2 获取临时目录与GUID ················ 128
10.1.3 更多系统信息 ·························· 129
10.2 NSData与NSMutableData类 ········ 130
10.3 使用NSFileManager类 ··············· 130
10.3.1 文件或目录是否存在 ················· 131
10.3.2 复制文件和目录 ······················· 131
10.3.3 删除文件和目录 ······················· 132
10.3.4 移动、重命名文件和目录 ··········· 133
10.3.5 文件与目录的属性 ····················133
10.4 文件操作 ······························· 134
10.4.1 读取文件内容 ·························· 134
10.4.2 写入文件 ································ 134
10.4.3 比较文件内容 ·························· 135
10.4.4 检测文件读写权限 ····················135
10.5 目录操作 ······························· 135
第11章归档··························137
11.1 归档与解档 ···························· 137
11.1.1
实现NSCoding协议···················· 137
11.1.2
使用NSKeyedArchiver类和
NSKeyedUnarchiver类 ··············· 139
11.2 利用归档复制对象 ···················140
第12章通知中心与对话框········142
12.1 通知中心 ······························· 142
12.2 OS X对话框···························· 146
12.3 iOS对话框 ······························ 147
12.3.1 回顾UIAlertView 类 ····················150
12.3.2 使用UIAlertController类 ·············· 152
12.3.3 iPad中的UIAlertController ···········154
第13章Sprite Kit基础··············156
13.1 个Sprite Kit项目 ················ 156
13.1.1 启动界面 ································ 159
13.1.2 视图 ······································ 161
13.1.3 创建场景 ································ 162
13.2 iOS设备与系统信息 ··················163
13.2.1 设备类型与iOS版本 ···················163
13.2.2
屏幕尺寸································ 164
13.2.3
封装——创建CApp.h和CApp.m
文件······································ 165
13.3 颜色 ····································· 167
13.4 节点树 ·································· 168
13.5 CoreGraphics·························· 171
13.5.1 CGPoint结构 ···························· 171
13.5.2 CGSize结构 ····························· 172
13.5.3 CGRect结构 ····························· 172
13.5.4 CGRectContainsRect函数 ·········· 172
13.5.5
CGRectContainsPoint函数 ·········· 172
13.5.6
CGRectGetMidX和CGRectGetMidY
函数····························· 173
13.6 坐标系 ·································· 173
13.6.1
位置(position)与锚点
(anchorPoint)························ 173
13.6.2
坐标转换································ 174
13.7 场景切换(SKTransition) ········· 174
13.8 游戏循环 ······························· 176
13.9 场景(SKScene)中显示对话框 ·· 178
13.10 Mac中的Sprite Kit项目 ············· 180
13.10.1 项目初始化 ···························· 180
13.10.2 响应鼠标与键盘 ······················ 181
13.10.3 屏幕与尺寸 ···························· 182
第14章精灵、纹理与角色控制···185
14.1 SKSpriteNode类 ······················· 185
14.1.1 创建精灵节点 ·························· 185
14.1.2 NSBundle类 ····························· 187
14.1.3 组合节点 ································ 188
14.2 SKTexture 类 ··························· 189
14.2.1 截取纹理内容 ·························· 189
14.2.2 精灵动画——翻滚的小行星 ········· 191
14.2.3 更多的小行星 ·························· 191
14.3 移动与碰撞 ···························· 192
14.3.1 场景初始化 ····························· 193
14.3.2 碰撞检测与游戏状态 ················· 197
14.4 触摸控制 ······························· 200
14.4.1 触摸响应方法 ·························· 200
14.4.2 控制太空船 ····························· 201
14.4.3 单击 ······································ 202
14.4.4 手势 ······································ 202
14.5 Mac中的太空船 ······················· 207
14.5.1 处理鼠标操作 ·························· 210
14.5.2 处理键盘控制 ·························· 212
14.5.3 在update:方法中处理键盘控制 ····· 213
第15章动作与声音播放···········216
15.1 基本动作类型 ························· 217
15.1.1 移动 ······································ 217
15.1.2 尺寸与缩放 ····························· 218
15.1.3 显示和隐藏 ····························· 219
15.1.4 旋转 ······································ 220
15.1.5 等待 ······································ 221
15.2 动作的组合 ···························· 221
15.2.1 动作组 ··································· 221
15.2.2 动作序列 ································ 222
15.2.3 动作重复 ································ 222
15.2.4 动画动作 ································ 223
15.3 声音播放 ······························· 223
15.3.1 使用动作播放声音 ····················223
15.3.2 使用AVAudioPlayer 播放声音 ········ 224
15.4 动作的使用 ···························· 224
15.4.1 执行动作 ································ 225
15.4.2 通过键(Key)执行动作 ············ 225
15.4.3 取消所有动作 ·························· 226
15.4.4 判断节点是否有动作执行 ··········· 226
15.4.5 修改动作速度 ·························· 226
第16章更多节点类型··············227
16.1 SKShapeNode ··························228
16.1.1 基本图形节点 ·························· 229
16.1.2 根据路径创建图形节点 ·············· 230
16.2 SKVideoNode ··························231
16.3 SKCropNode ···························232
16.4 SKEffectNode·························· 233
16.5 SKEmitterNode与粒子效果 ········· 234
16.5.1 在Xcode中创建粒子 ··················234
16.5.2 下雪场景 ································ 235
16.5.3 模拟爆炸 ································ 236
16.5.4 SKEmitterNode 类 ·····················238
16.6 节点的组合 ···························· 240
第17章Sprite Kit游戏常用算法···242
17.1 两点距离 ······························· 242
17.2 碰撞测试 ······························· 243
17.3 角度 ····································· 245
17.4 视线 ····································· 246
17.5 躲避障碍物 ···························· 249
第18章综合测试——Mac版
坦克大战····················251
18.1 场景初始化 ···························· 252
18.1.1 创建坦克 ································ 254
18.1.2 创建敌人 ································ 254
18.1.3 创建岩石 ································ 255
18.2 坦克的操作 ···························· 255
18.2.1 坦克的动作 ····························· 256
18.2.2 鼠标和键盘控制 ······················· 257
18.2.3 自动执行 ································ 258
18.3 敌人的AI ······························· 259
18.4 处理已发射 ······················ 261
18.5 自己动手 ······························· 262
第19章加速计与陀螺仪···········263
19.1 自动响应 ······························· 264
19.2 调用数据 ······························· 267
19.3 游戏控制方法小结 ···················269
19.3.1 触摸屏 ··································· 269
19.3.2 键盘与鼠标 ····························· 270
第20章网络状态····················271
20.1 检测网络状态 ························· 271
20.2 监视网络状态 ························· 272
第21章Game Center排行榜·····274
21.1 配置排行榜 ···························· 274
21.2 在应用中处理排行榜 ················ 275
21.2.1 Game Center登录状态 ················ 275
21.2.2 提交成绩 ································277
第22章应用内购买 ·················280
22.1 准备测试用户和设备 ················280
22.2 创建App内购买 ·······················281
22.3 在项目中使用App内购买 ···········282
22.3.1 检测访问限制与网络 ·················282
22.3.2 执行购买操作 ··························285
22.3.3 恢复已购项目 ··························287
22.3.4 在场景(SKScene)中执行购买操作 ···287
22.3.5 在场景(SKScene)中执行恢复操作 ··290
第23章发布到App Store ··········292
23.1 注册开发者与设备 ···················292
23.2 发布准备 ·······························293
23.2.1 应用图标 ································293
23.2.2 iOS应用截图 ····························294
23.2.3 OSX应用截图 ··························295
23.2.4 上传应用 ································295
23.2.5 项目审核 ································295
作者介绍
文摘
序言