开发者经验谈:如何一天时间搞定iOS游戏开发?
开发者经验谈:如何一天时间搞定iOS游戏开发?
在一天时间里将完成iPhone游戏开发由梦想变为现实?本文作者给出了从创意转变成现实的详细答案。使用苹果原生游戏引擎SpriteKit,遵循一定的原则可以保证开发顺利进行,最大程度避免意外情况的发生。CSDN移动将持续为您优选移动开发的精华内容,共同探讨移动开发的技术热点话题,涵盖移动应用、开发工具、移动游戏及引擎、智能硬件、物联网等方方面面。如果您想投稿、参与内容翻译工作,或寻求近匠报道,请发送邮件至tangxy#csdn.net(请把#改成@)。
遵循一定的原则可以保证开发顺利进行,最大程度避免意外情况的发生。根据我以往的经验,如果不提前想好运用什么技术?怎么组合这些技术?临时抱佛脚,刷网页搜信息将会耗费掉很多精力。
这篇指南会告诉你什么时候该走哪一步,用苹果的原生游戏引擎SpriteKit,让游戏从创意转变为现实。
1. 创建一个Project
有了一个游戏创意之后,第一步是立刻用苹果的开发IDE——Xcode,创建一个游戏Project。为苹果设备开发App,为什么非得用Xcode呢?因为它更简单,更省事,更方便。
2. 设立Workspace
在Xcode里,Workspace要求有逻辑体系(logistics),一些准备工作也必不可少,比如决定游戏在设备上的orientation,做一些适当的改动——取消选定portrait或landscape view,在project文件或XCODE编辑器里进行编辑。
3. 添加Project资源
Project资源即图像音频文件或其他要添加到project里的外部文件。简单拖放进project导航器就可以了。
4. 改变背景颜色
这一步才真正是好戏开场。要改变背景颜色的话就得多写几行代码,保证运转高效进行,程序员也更有动力继续工作。
这一步看似不起眼,做好了却能大大提升开发者的积极性,让他们更加相信自己有能力为Project带来积极的影响。
5. 为背景添加Sprite
从asset或图像文件夹里获取图片,添加为游戏背景。了解了如何添加以及安置背景sprite的位置后,就能为游戏场景添加sprite了。
6. 添加游戏Sprite
添加了背景sprite后,同时添加in-game sprites,也是不错的想法。
游戏内置sprite也会帮忙节省不少时间,让你安安心心把注意力放在游戏逻辑上。
7. 添加玩家控制的Sprite
添加游戏sprite时,你说不定已经加上了玩家控制的sprite,这一招挺受用的。将两者分开来操作主要是考虑到多数情况下,玩家控制的sprite按照我们的意愿执行一个行为或位置时,可能跟游戏内置的其他sprite有所不同。
添加游戏逻辑
创建了自己的游戏asset之后,就开始为游戏添加逻辑了。在这篇指南中,我们会用到很多iOS游戏喜欢用的“拖放”机制。
执行游戏逻辑时,须采用“分而治之”的方法,也就是将过程分割成最小单位,分别编写代码。
8. “拖放”Sprite——“拖”
I为玩家sprite执行“拖动”机制,要用到touchesBegan功能,该功能现已适用于苹果产品。这个动作只需要轻点屏幕即可引发。
9.“拖放”Sprite——“放”
这一步会用到touchesMoved和touchesEnded功能,判断手指什么时候移开屏幕。
这部分我们创建菜单屏幕,按键还有游戏所需的用户界面工具。
10. 创建主菜单(setUp)
要创建主菜单屏幕,也就是scene(场景)或一个SKNode,要求有Cocoa Touch文件。在这篇指南里,我们用scene。
11. 调用主菜单
创建主菜单后,要调用主菜单,才能开始运作。游戏启动后,应立刻调用主菜单,作为游戏中出现的第一个场景。
12. 添加背景Sprite
这一步跟添加游戏场景背景sprite是一样的。
13. 触摸开始游戏
主菜单加载后,游戏要真正开始,只要给屏幕添加一个触摸功能就好。触摸的动作检测到之后,调用加载游戏场景,然后游戏开始运行直到结束。
14. 返回主菜单按钮
玩家如何从游戏场景返回主菜单呢?方法是重复第13步的touch方法,但这次我们用sprite做按键,玩家按下按键之后,就能返回主菜单。
15. 场景转换
动画让游戏更引人入胜,可谓锦上添花。虽然跟游戏内容没太大关系,但能大大提升游戏体验。
16. 添加一个Play按键
游戏完成之后,用Sprite添加一个Play按键,很简单。按下Play键,就能开始游戏了。
App Store上有更多游戏逻辑和游戏Demo
我曾开发了一个名为Piggie Penny Pincher的iOS游戏,App Store上有,接下来,我将和大家分享我在开发该游戏时用到的一些解决方案。
让游戏动起来
18. 动画&特效
是时候添加动画和特效了,好让游戏看起来更生动一些。
运用动画制作12条准则的任何一条,都会使你的动画更为生动。而最简单常用的是“挤压与拉伸(Squash and Stretch)”,让游戏体验更上一层楼。
19. 音乐和音效
最后可以为游戏添加音乐和音效了,虽然并非或不可缺,但能让你的游戏更加引人入胜
开发者经验谈:如何一天时间搞定iOS游戏开发?的更多相关文章
- 【转】开发者分享如何创造一款优秀的iOS游戏——2013-08-25 17
http://game.dapps.net/gamedev/experience/889.html 创造出<Temple Run>的夫妻团队在高峰时期每天能够获得"好几万&quo ...
- Centos安装FastDFS+Nginx(一天时间搞定)
最近在研究和使用Fastdfs,别人搭的环境,终究是别人的,绝知此事要躬行~躬行啊~ 下面的脚本主要参考了官方的INSTALL文件,这个是比较权威的,部分地方和实际情况不一致.比如配置文件的 ...
- [转]Cordova - 彻底搞定IOS编译!
本文转自:https://www.cnblogs.com/sunylat/p/9946482.html 操作系统:OSX10.14 XCode:10.1 Cordova:8.1.2 假设已经配置好了C ...
- Cordova - 彻底搞定IOS编译!
操作系统:OSX10.14 XCode:10.1 Cordova:8.1.2 假设已经配置好了Cordova开发环境,Apple ID你也有,XCode也可以正常工作了,那么就可以继续看这篇文章了! ...
- leetcode 258. Add Digits——我擦,这种要你O(1)时间搞定的必然是观察规律,总结一个公式哇
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. ...
- 分分钟搞定IOS远程消息推送
一.引言 IOS中消息的推送有两种方式,分别是本地推送和远程推送,本地推送在http://my.oschina.net/u/2340880/blog/405491这篇博客中有详细的介绍,这里主要讨论远 ...
- 5分钟搞定iOS抓包Charles,让数据一清二楚
Charles安装 HTTP抓包 HTTPS抓包 1. Charles安装 官网下载安装Charles:https://www.charlesproxy.com/download/ 2. HTTP ...
- 一句话搞定IOS中View的Frame和Bound
就一句话,Frame是父View上看到子View的窗户,Bound是子View上可以被父View看见的内容. 稍微解释下.Frame 指子View在父View中的位置以及大小.由两部分构成,第一部分是 ...
- [Python] Uvicorn+FastAPI快速搞定Restful API开发
目录 安装模块 运行代码 运行命令 快速文档 安装模块 # 一个现代的,快速(高性能)python web框架 pip install fastapi # 主要用于加载和提供应用程序的服务器. pip ...
随机推荐
- Redis学习笔记(1)-Key
package cn.com; import java.text.ParseException; import java.util.List; import java.util.Set; import ...
- 答CsdnBlogger问-关于VR取代安卓的问题
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 安卓未来的发展和命运几何? 现在VR和AR各种火爆,是否安卓能够在洪流中屹立不倒呢? 你好,其实这个 ...
- 转:Windows Socket五种I/O模型
原文转自: Windows Socket五种I/O模型 Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模 ...
- Jquery 多选下拉列表插件jquery multiselect
有一个多选的需求,在网上找到了这个插件:multiselect https://github.com/ehynds/jquery-ui-multiselect-widget csdn博客上有这个插件的 ...
- {$ecs_css_path}
includes里的init.php的187-194行 if (!empty($_CFG['stylename'])) { $smarty->assign('ecs_css_path', 'th ...
- 用MFC时,如果程序崩溃,检查内存,然后注意GDI数量,在任务管理器里选项-查看列-GDI数量
用MFC时,如果程序崩溃,检查内存,然后注意GDI数量,在任务管理器里选项-查看列-GDI数量
- 使用oracle外部表进行数据泵卸载数据
数据泵卸载Oracle9i引入了外部表,作为向数据库中读取数据的一种方法.Oracle 10g则从另一个方向引入了这个特性,可以使用CREATE TABLE语句创建外部数据,从而由数据库卸载数据.从O ...
- Review of Segmentation for Medical image analysis
成像方法:X射线,CT,MRI,SPECT,PET等 分割的定义: Image segmentation is a procedure for extracting the region of int ...
- Android设计模式源码解析之Builder模式
https://github.com/simple-android-framework/android_design_patterns_analysis/tree/master/builder/mr. ...
- [GeoServer]Openlayers简单调用
Openlayers Demo: <html> <head> <title>OpenLayers Example</title> <script ...