基于spritekit引擎ios平台某游戏的设计与实现开题报告毕业论文文档格式.docx
- 文档编号:8357183
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:18
- 大小:1.37MB
基于spritekit引擎ios平台某游戏的设计与实现开题报告毕业论文文档格式.docx
《基于spritekit引擎ios平台某游戏的设计与实现开题报告毕业论文文档格式.docx》由会员分享,可在线阅读,更多相关《基于spritekit引擎ios平台某游戏的设计与实现开题报告毕业论文文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
2.4存在的主要问题和技术关键15
2.4.1存在的主要问题15
2.4.2技术关键15
2.5预期达到的目标16
3研究计划进度表和经费预算及经费落实18
3.1研究计划进度表18
3.2经费预算及经费落18
主要参考文献19
校内外导师意见20
1论文选题的目的和意义
1.1课题来源,项目名称
本课题来源于腾讯公司内部的创新大赛和本人对iOS手机游戏App研发的浓厚兴趣。
经过企业和导师的建议,我的课题是做一款iOS平台上的益智类手机游戏,名称为《基于SpriteKit引擎iOS平台某游戏的设计与实现》。
游戏创意出自于本人,市面上尚无雷同的游戏。
相比于如今流行的跑酷类、音乐节奏类和策略类手游,我将这三者的部分特点结合到了一起,在欣赏音乐节拍和比拼操作手速的同时也要考虑游戏策略。
项目主页地址:
,本项目已经上架苹果的AppStore。
随着我国社会经济的增长和科技发展水平的提高,手机已经成为亿万国人必备的掌上神器,越来越多的影响和改变着人们的生活,逐渐占领着这个大众的消费市场。
[1]
根据来自荷兰游戏数据调研机构Newzoo最新的预测,2015年中国移动游戏市场将达到65亿美元(413亿元)的规模,将超过美国,成为世界第一大移动游戏市场。
过去四年,中国的移动游戏市场从62亿猛增到275亿。
上下班通勤的地铁上,拥挤的公交站台旁,你很容易就能发现身边正低头玩着手机游戏的人。
他们飞快地移动着手指把相同的图案连在一起,或者拖动着自己的战机躲避敌人的炮火,脸上的表情随着剧情不断变换……
这些小游戏让通勤变得不那么无聊。
因为足够短平快,许多从不玩游戏的人也变成了玩家;
因为有了社交网络,通过分享和排名,玩游戏也不再是一个人的乐趣。
随时可得,随处可玩,随意分享——玩游戏从来没有这么自由和随意,而这种改变正在催生出一个巨大的消费市场。
本课题以“渐开线”这一主题拓展出多种不同的游戏模式,共有五种游戏角色在不同模式的地图中运动。
玩家通过操控角色来获取分数,释放技能,躲避障碍。
游戏结束后可以查看分数排名,并可以向他人发出挑战,或是分享战绩炫耀一番。
游戏过程中具有很强的声光效果,时刻考验着玩家的操作能力。
项目采用苹果公司新发布的Swift语言开发,并使用苹果公司SpriteKit游戏引擎的最新技术。
无论是程序语言还是开发框架都是最新,国内外可借鉴的经验较少,而游戏开发又免不了要涉及到一些算法与数据结构,还有诸如状态机、物理模型、碰撞检测和纹理渲染等游戏开发需要掌握的知识,项目难度可想而知。
1.2与本课题有关的国内外研究状况
在WWDC2014上,苹果启动了全新的编程语言Swift,这对所有的开发者来说是极大的利好[2]。
它在速度方面十分出色并具有很高的兼容性,其代码可以与C语言和Objective-C共存。
在展示中,开发人员现场用Swift开发了一款游戏,Swift展示了强大的特性,能够实时构建并运行代码[3]。
苹果发布的这门新语言被认为将会替代Objective-C,至今仍在不断更新,如今已经发布了第二个版本[4]。
有人把它看成函数式编程语言,但它实际上是一门带有恰当泛型编程的面向对象的编程语言[5]。
苹果官方在iBooksStore发布了两本Swift的教程书籍,并保持不断更新。
国内有一些组织和个人(包括我自己)将这两本书翻译成中文,方便了国内开发者对Swift的研究和使用。
SpriteKit具有很多对游戏有用处的功能,包含在图形硬件上渲染精灵,支持基本的音频播放、物理模拟、动画和很多其他的特性[6]。
它能利用宿主设备上图形硬件合成高帧率的2D图像。
国外的RayWenderlich团队将其使用Swift和SpriteKit开发iOS游戏的经验写成了一本书[7],目前已经更新到了第二版。
RayWenderlich最开始是一个个人博客,后来慢慢发展壮大,热衷于撰写iOS开发教程,并始终对苹果公司的新技术进行教程的更新。
国外的iOS开发者LelandLong也在2014年写了一本SpriteKit的入门教程[8],但在今年苹果对SpriteKit更新之后,书中的内容已显得有些陈旧,并且书中的教程案例都不是用Swift编写的。
截至本文发稿时,Github上使用SpriteKit的开源Swift语言项目已经有四百多个,但绝大多数都是简单的尝试、例子和教程代码,真正的大型项目较少。
国外开发者Jim使用SpriteKit开发了一款有关音乐节奏的游戏[9],虽然不是用Swift开发,但其制作精良,颇有诚意。
在游戏创意上,我充分借鉴了当前成熟的2D小游戏,并加以改编优化,形成了自己的一套“渐开线”风格,应用到不同的游戏模式当中。
由于苹果设备的惊人功能,开发一款iOS游戏是十分有趣的[10]。
因为苹果的AppStore负责游戏的分发和盈利,在这方面在国内外都有很多教程和经验来学习。
游戏开发过程中所用到的一些设计模式和算法都很成熟,不过需要与新技术结合到一起,具有一定的工作量和难度。
游戏开发中经常会用到诸如随机算法、状态机、实体和组件,甚至规则系统、寻路系统、策略树等。
这些不是单单一个游戏引擎就可以包含到的,往往涉及到技术的实现细节和架构设计。
苹果公司提供的GameplayKit框架可供借鉴,它很好的集成了。
总之,现今同时使用SpriteKit游戏引擎和Swift语言开发的iOS平台游戏较少,最值得借鉴的经典案例应该是苹果官方的“DemoBots”了。
而在手机游戏创意和运作模式这方面,国内外都有较多的研究,已经很成熟。
1.3本课题研究的主要内容
本课题研究使用SpriteKit引擎和Swift语言来研发一款iOS平台的益智类手机游戏。
SpriteKit是一款轻量级的2D游戏引擎,2013年发布以来一直在不断优化和增强新功能。
然而它仍与国际主流游戏引擎有很大差距,目前较为流行的Unity,Unreal,Cocos-2dx等游戏引擎都具有功能强大的开发工具,成熟高效的引擎内核,生成跨平台工程等优势。
而苹果自家的SpriteKit刚问世不久,使用其开发游戏的项目并不多。
此外SpriteKit只支持iOS平台,这对于大部分人力和物力有限的游戏开发公司来说并不是个很好的选择。
但苹果一直想打造自己的生态环境,所以苹果在自家的游戏引擎上下了很大功夫。
SpriteKit无论在开发环境与Xcode的集成程度,还是与硬件之间的性能优化都具有很强的优势。
SpriteKit能够较好的集成到iOS开发框架中,我自从SpriteKit发布后便一直关注,并着手实践。
我开发的游戏目前共有三个模式:
原生模式、禅模式和迷宫模式。
游戏主要靠用户触碰手机屏幕来操作五角星进行位移,通过躲闪红色杀手小球来生存,并尽可能地收集绿色植物小球来加分。
在获得紫色护盾后可以抵挡一次红色杀手的触碰。
而蓝色的小球是清理战场的收割者,可以作为替身来帮助玩家清理红色杀手和获取积分,护盾等。
蓝色小球数量有限,使用需慎重,但每次升级后都会奖励蓝色小球。
具体的游戏规则和操作方式都在帮助页面有图示,在游戏结束时也会有一些玩法上的提示。
不同的模式对应着不同的地图和玩法策略,但五种角色之间总体的对抗关系都是一脉相承的。
本课题需要利用手机的加速计等硬件来配合游戏首页的模拟物力碰撞效果。
并发挥SpriteKit引擎的光照系统和粒子系统的性能优势,增强游戏效果,优化玩家体验。
游戏大量运用了光影效果,粒子系统和物理引擎。
当玩家具有护盾时会发出绿色的光芒,并照亮周围的地图,细腻的纹理反射出的光芒十分绚丽。
同样蓝色收割机也自带蓝色的光。
而红色杀手会在自身周围产生血溅效果,时刻警告者其他过往的角色。
游戏首页中的角色会随着玩家晃动手机而产生惯性效果,并在碰撞其他角色时互相弹开。
除了界面动画方面,在游戏声音和图片素材的选取也别有讲究。
原生模式、禅模式和迷宫模式的布景和音效都有自己的主题。
原生模式采用鹅卵石镶嵌的地图,路径绘制采用麻绳,而背景音乐和碰撞音效也都与此相关;
禅模式的背景采用中文书法的“蝉”字,而渐开线路径采用竹子拼接而成,配合着钟声、竹筒敲打等声音,颇有一番禅意;
迷宫模式采用粒子系统搭建的迷宫通道,颇有乱花渐欲迷人眼的意境,而且主打金属背景的地图很有迷宫的森严感,音效也大量采用金属敲击声音,配合主题。
因为游戏操作只需要手指的触碰,所以在用户操作设计上下了一些功夫。
比如可以通过双指放大操作来释放蓝色收割者,或是双指缩小操作来让所有的角色跳回到内层路径。
用户可以在屏幕左边缘向右滑动来返回上个页面。
在迷宫模式中,操作五角星的运动方向也是靠用户手指上下左右四个方向的滑动来完成的。
每种游戏模式的玩法都有些自己独有的亮点,所以也就对应着不同的帮助页面。
为了怕用户不认真看游戏帮助,我特意设计了漆黑的背景,让用户必须用手指触碰屏幕来照亮帮助页面中的内容。
用户的手指就相当于一个手电筒,滑动到哪,光源就照到哪。
而在游戏帮助的最后则说明了如何退出帮助页面。
在游戏技术实现方面,游戏在开发过程中用到了规则系统(用来让AI做决策),状态机,一些常用的图论算法和许多设计模式(比如观察者模式,单例模式,访问者模式等),并集成了GameCenter的全球玩家排名榜,成就系统和好友挑战功能。
玩家还可以录制玩游戏的过程,并加上游戏解说,在游戏结束时有回顾游戏录像的功能,还可以将战绩分享到微博和微信朋友圈等社交网络。
如图1-1为游戏的部分截图,运行设备为iPhone5s,系统版本为iOS9。
图1-1游戏部分截图
目前游戏已经在全世界各个国家的AppStore上架,但只支持中、英文两种语言。
游戏中文名为“旋球华尔兹”,英文名“SquareSpiral”为课题在App内容国际化方面也做了一番研究,Xcode在此方面也提供了很多支持。
2研究方案
2.1需求分析及总体设计方案
本项目主要是基于iOS客户端,并使用了苹果公司的GameCenter服务器来实现游戏社交功能。
GameCenter服务器需要配置成就系统、排行榜等参数,并存储每个玩家的游戏数据。
客户端需要在GameKit层实现与GameCenter服务器的通讯,并利用游戏引擎框架驱动游戏架构逻辑层、I/O模块和通讯模块。
本章将介绍项目需求以及总体设计方案。
2.1.1主要开发内容
(1)游戏引擎模块:
从力学和光学方面模拟游戏的物理环境,布置游戏场景,渲染游戏界面和动画,处理物理碰撞。
使用sks文件配置粒子系统和静态场景。
(2)游戏架构逻辑模块:
使用实体与组件管理游戏角色与行为,管理状态机,并结合随机化、寻路算法和规则系统实现一定程度的AI。
还包括处理用户操作,设计游戏流程。
(3)游戏中心模块:
与苹果GameCenter服务器通讯,构建成就系统和排名系统的接口,提供给其他模块使用。
(4)社交分享模块:
分享游戏截图、战绩以及下载链接到第三方社交平台。
需要接入微信等社交SDK。
(5)数据管理模块:
存储游戏产生的数据,并在各项数据变化时触发一定的行为,驱动业务逻辑变化。
部分重要数据通过NSUserDefaults存储在持久层。
(6)硬件接口模块:
捕获iOS设备的加速计传感器数据,并进行处理。
录制游戏屏幕视频,录音。
播放器静音等。
(7)国际化模块:
对游戏中一些元素进行国际化处理,支持中英双语。
2.1.2需求分析
2.1.2.1系统功能性需求
游戏主要靠用户触碰手机屏幕来操作五角星在地图中运动。
当五角星碰撞到绿色多肉植物时,玩家获取2分,多肉植物消失。
当五角星碰撞到紫色护盾时,玩家获取1分,紫色护盾消失,此时五角星进入“护盾模式”,可以抵御一次红色杀手的撞击。
当五角星在护盾模式下撞击到红色杀手时,玩家获取1分,护盾消失,杀手也会消失。
如果五角星在无护盾的情况下碰到了红色杀手,则游戏结束。
随着游戏分数的增加,玩家会获得蓝色收割机道具作为奖励。
玩家可以在游戏过程中释放收割机,它相当于是五角星的一个替身,能够帮玩家赚取分数。
游戏结束时会统计此局游戏所得分数,并列出本地玩家最高分数。
如图2-1为游戏系统的功能操作流程图:
图2-1功能操作流程图
(1)原生模式:
地图为顺时针的矩形渐开线。
游戏角色会随机从地图中心生成,并沿着渐开线向外运动。
随着游戏等级提升,每个角色的运动速度都会提升。
当五角星运动到渐开线末端时游戏也会结束。
(2)禅模式:
游戏地图为以“卍”字为中心的矩形渐开线,具有四个终点。
游戏操作方式与原生模式类似,不过游戏的界面和音效元素均有很大差异。
(3)迷宫模式:
游戏地图为矩形渐开线形式的迷宫,并且是连通图,没有思路。
玩家通过在屏幕上、下、左、右四个方向轻扫来控制五角星运动的方向。
地图没有终点,绿色多肉植物和紫色护盾会在迷宫中故意躲避五角星,而红色杀手则会杀气腾腾地对五角星围追堵截。
(4)游戏流程控制:
包括退出游戏、暂停游戏、继续游戏、再来一局等功能。
退出游戏:
玩家可以在游戏中途退出游戏返回主页面,具体操作是从屏幕左边缘向右轻扫;
也可以在游戏结束时点击“GameOver”按钮来返回主页面。
暂停游戏:
玩家可以在游戏过程中长按屏幕来暂停游戏。
继续游戏:
玩家可以在游戏暂停页面点击屏幕任何位置来继续游戏。
再来一局:
游戏结束后,玩家可以点击再来一局按钮,重新开始当前模式游戏。
(5)GameCenter:
玩家使用账号密码进行登录,登录成功后方可获取游戏成就,对好友进行游戏挑战,参与全球玩家游戏排名榜等。
(6)游戏录制功能:
玩家可以在游戏开始前选择录制本局游戏,并可以在游戏过程中通过手机麦克风录制游戏解说。
游戏结束后将会生成录制的游戏视频,并可以将视频分享到第三方社交平台。
(7)游戏模式选择:
玩家可以在游戏主页面选择游戏模式。
并可以在主页面摇动手机,使界面上的元素做惯性运动。
(8)社交分享功能:
在游戏结束时可以将本局分数、游戏截屏和游戏链接通过短信、邮件、Twitter、Facebook、新浪微博、腾讯微博、Telegram、LinkedIn、奇妙清单、印象笔记、Messenger、微信好友、朋友圈等第三方平台。
(9)游戏帮助功能:
每种游戏模式都有自己的帮助页面,用户需要把自己的手指当成“手电筒”来照亮游戏帮助页面上的文字。
这种“反人类”的设计目的就是逼着用户去认真仔细查看游戏奥秘,因为大部分用户都是不看帮助的。
2.1.2.2系统非功能性需求
用户界面要求适合手机显示特点。
显示效果要美观、简洁、清楚;
操作方式要简单方便,使用户一看即懂,没有歧义;
界面显示要兼容各种不同分辨率和屏幕尺寸的要求。
为使用户具有良好的使用体验,系统要具有流畅的运行速度和快速的响应速度,为此要从以下几方面入手解决此问题:
(1)手机游戏要设计的精巧高效,少占用资源,优先响应用户操作,界面跳转合理。
(2)手机游戏本地缓存应用信息,可以减少系统启动和运行对数据的加载时间,并且提升用户体验。
(3)手机游戏要兼顾各种网络连接状态,在不同的网络连接状态下可设置不同的应用显示方案。
2.1.3总体设计方案
根据iOS平台手机游戏的需求,本项目总体设计方案如图2-2所示:
图2-2总体设计方案
(1)通讯层:
封装与GameCenter服务器通讯的底层接口,提供上传和下载排行榜数据与游戏成就完成进度的功能。
除此之外还需要在配置GameCenter服务端的排行榜与成就的设置。
(2)游戏框架层:
基于GameplayKit框架构建的游戏框架层,包含很多处理游戏逻辑的模块,不直接参与游戏界面的绘制,而是根据游戏数据层提供的数据,维护了游戏中一些元素的状态,并将这些数据根据当前状态进行逻辑处理后生成一些后续的行为,并驱动游戏引擎层来根据这些行为进行游戏界面的更新。
游戏框架层不仅驱动游戏引擎层,也会被游戏引擎层驱动。
比如游戏引擎层的物理引擎模块会在精灵之间产生接触时通知游戏框架层来处理碰撞事件,并将处理结果通过通信层上传到GameCenter服务器。
(3)游戏引擎层:
使用SpriteKit游戏引擎技术,提供模拟逼真物理场景的能力,还可利用动画引擎做出一些基本动画。
粒子系统可以很好地模拟烟雾、雨雪、火焰等特效。
除此之外游戏引擎还提供音频播放功能,保证各个音效Session播放不冲突。
物理引擎模块和图像渲染模块分别会耗费大量CPU与GPU资源,在这部分需要做些性能优化工作。
(4)业务层:
提供一些与业务相关的模块。
社交分享模块提供了分享游戏视频、截屏、下载链接和战绩到第三方社交平台的能力。
用户输入模块会捕捉用户的各种触摸手势和摇晃手机的加速度,这两种数据都会驱动游戏界面和数据层进行反馈。
(5)数据层:
负责在内存中存储游戏数据,并将部分重要数据持久化到闪存中。
数据层还负责响应一些数据的变化,并驱动游戏框架层和游戏引擎层进行下一步的操作。
2.2技术方案
2.2.1技术路线
本课题的实现分为四个技术阶段:
(1)SpriteKit游戏引擎研究:
此阶段研究包含物理引擎、动画引擎和粒子系统的研究。
物理引擎主要研究如何创建合适的物理环境和物理体,在模拟物体碰撞时针对不同情况需要采取什么样的策略。
这部分处理要用到访问者模式来减少代码冗余度,并将整个游戏的碰撞检测处理逻辑统一起来。
光照系统也是物理引擎的一部分,需要妥善的创建点光源和环境光,并通过位掩码的方式配置物体能反射那些光源的光、能遮挡住那些光源并产生影子、能被那些光源产生的影子遮挡。
动画引擎提供了诸如缩放、旋转、位移、透明度和颜色等基础动画,也可以将基础动画通过串行队列或并行编组的方式组合在一起,甚至可以直接在block中实现动画。
除此之外,动画引擎还提供了播放音频文件的API。
粒子系统是游戏必不可少的系统,可以用来模拟烟雾、火焰、雨、雪、火山喷发等效果,除了系统提供的模板之外还可以自己配置各项参数来实现可定制的粒子系统。
(2)GameplayKit框架研究:
此阶段研究包含游戏架构设计和构建游戏逻辑。
利用最小的代价来设计模块化,可扩展的游戏架构。
游戏架构设计主要研究用更好的框架。
构建,改良和维护一个复杂的游戏需要一个精心策划的设计。
GameplayKit提供了实体与组件结构来设计更加可重用的游戏代码,提供了一个状态机系统来拆解开复杂的代码逻辑,同时还包含了许多随机化工具用以为多种游戏建立基础。
构建游戏逻辑可以使用极小化极大策略为对抗类的回合制游戏创建AI系统,可以使用寻路功能为游戏角色在游戏世界中寻找路径,你还可使用代理模拟让你的游戏角色依据高级目标移动,或者可以使用规则系统从代码中独立出游戏设计,并允许模糊逻辑推理。
图2-3为状态机的示例图:
图2-3状态机示例图
(3)GameCenter平台接入:
此阶段研究包含如何将玩家的战绩上传GameCenter服务器进行排名,如何设置游戏的成就系统,通过成就完成度来激励玩家,增强自豪感和荣誉感。
(4)Swift语言探索:
Swift2.1已经发布,日后还会有更新。
不仅要在语法上跟进,更要在性能优化和设计模式上进行探索。
目前已经实现与Objective-C桥接和利用Runtime系统进行一些“黑魔法”。
本课题技术路线图如图2-4:
图2-4技术路线图
2.2.2技术措施
针对技术路线中的研究流程,提供主要技术措施如下:
(1)SpriteKit引擎:
阅读苹果官方文档和代码示例,对物理引擎、动画引擎和粒子系统进行研究。
熟悉SKNode树状结构和其子类的坐标系。
在处理碰撞时采用访问者模式来统一优化处理碰撞后的行为。
如图2-5为SpriteKit引擎渲染每帧的生命周期。
图2-5SpriteKit引擎每帧渲染的生命周期
(2)游戏逻辑和框架:
部分游戏逻辑使用GameplayKit框架提供的实体与组件、状态机来进行游戏角色相同行为的统一渲染。
在部分游戏模式下需要用到规则系统和随机化来模糊AI的行为,还需要用到寻路算法在有向图中找出最短路径。
苹果也为GameplayKit框架提供了详细的官方文档和示例代码,国内也有人将其翻译成中文。
如图2-6为实体与组件的关系示例图。
图2-6实体与组件关系示例图
(3)游戏社交:
这部分包含苹果提供的GameCenter平台和一些第三方社交平台。
GameCenter平台内置于iOS系统中,只要用户使用苹果账号登录就可以使用。
这里需要与苹果的GameCenter服务器进行通信,主要是上传用户的得分和成就百分比,接收服务器返回的旧数据。
第三方社交平台涉及到Facebook、Twitter、微博和微信朋友圈等主流社交平台的接入。
(4)Swift语言:
Swift语言有很多不足之处,比如不能创建函数指针等,需要桥接到Objective-C来完成。
Swift语言自带函数式和响应式开发的功能,还可以搭配KVO和NSNotificationCenter实现观察者模式来对实例进行监听。
有些系统接口的实现不是很安全,需要hook其实现并做些优化处理,这就需要详细研究Runtime机制。
2.3方案实施所需的条件
2.3.1技术条件
课题所需的技术较高,在完成课题时需要有一定的iOS编程基础和一些开发工具的使用技巧。
在知识储备方面,需要学习苹果最新发布的Swift语言。
因为Swift语言发布至今仍在不断优化,语法也有几次大幅度更新,所以要求具有很强的学习能力和理解能力。
现今Swift2.1已经发布,语法趋于稳定,性能也在不断提升,后续可能还会有小幅度升级,需要及时更新编译器版本和课题的工程代码。
此外,还需要掌握iOS开发的基础知识。
因为游戏开发是建立在普通App开发的基础之上的,需要先能够搭建好一个iOSApp框架,然后才能深入到游戏开发中来。
最后还要熟悉SpriteKit游戏框架,掌握游戏开发的常用技巧。
比如在游戏界面绘制上需要掌握纹理渲染的知识、基本的物理概念、动画的合成、精灵节点与场景。
而在游戏机制实现上需要部分用到GameplayKit框架提供的状态机、实体与组件、随机方法、寻路算法和规则系统等。
在工具使用方面,需要了解如何使用MacOSX操作系统,并对Xcode的使用技巧较为熟悉。
在调试程序时也需要较高的技巧,能够熟练使用lldb命令调试程序内存分配,并结合chisel工具进行可视化界面的调试。
在性能优化方面还需要熟练掌握Instruments的使用,例如检查内存泄露、检测FPS是否达标、评估CPU和GPU利用率和界面响应速度等。
为了合理高效地利用三方库,还需要掌握如何使用CocoaPods或Carthage工具来管理三方库。
而一些常用的终端辅助工具也是必不可少的,使用iTerm2作为终端工具。
Mac上有一款Unix插件管理工具HomeBrew十分好用,很多终端命令工具都可以用它管理和安装,但其作者面试谷歌时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 spritekit 引擎 ios 平台 游戏 设计 实现 开题 报告 毕业论文