开发者经验谈:如何一天时间搞定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 ...
随机推荐
- 低功耗蓝牙4.0BLE编程-nrf51822开发(1)
为了省钱,也为了提高手动能力,只买了块核心板,仿真器用的是旧的jinkv7,自己搭扩展板,DIY就这样开始了. 买这块之前做了些调查,最终选定了nrf51822,功耗低,性能强,开发难度小,虽然比TI ...
- Docker Device Mapper 使用 direct-lvm
一.Device Mapper: loop-lvm 默认 CentOS7 下 Docker 使用的 Device Mapper 设备默认使用 loopback 设备,后端为自动生成的稀疏文件,如下 ...
- 在express项目中有效组织和使用mongoose
平凡之路 1.创建express项目 express mongooseExpress 2.最简express var express = require("express"); v ...
- ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100)
原文:ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100) 对于非地理专业的开发人员,对与这些生涩的概念,我们不一定都要了解,但是我们要理解,凡是 ...
- How To Install Tinc and Set Up a Basic VPN on Ubuntu 14.04
Introduction In this tutorial, we will go over how to use Tinc, an open source Virtual Private Netwo ...
- Candies---hdu3159(spfa+差分约束)
题目链接:http://poj.org/problem?id=3159 题意:有n个小孩,m个关系格式是A B C 表示小孩 B 的糖果数最多比小孩A多C个,相当于B-A<=C; 有m个这样的关 ...
- JS之Array.slice()方法
1.Array.slice(startIndex,endIndex); 返回由原始数组从startIndex到endIndex-1的元素构成的新数组; startIndex:默认值0,如果startI ...
- 【转】使用git、git-flow与gitlab工作
转自:http://www.tuicool.com/articles/BZJRj2 使用git.git-flow与gitlab工作 时间 2013-11-02 00:40:39 Axb的自我修养 原 ...
- marathon参考(11):ports端口设置(转)
Ports marathon中应用的端口配置可能被混淆,并有一个悬而未决的问题,需要重新设计 ports API.这个页面试图更清楚地解释它们是如何工作的. 定义 containerPort:在容器内 ...
- jQuery的dom操作(二)转
addClass() 向匹配的元素添加指定的类名. after() 在匹配的元素之后插入内容. append() 向匹配的元素内部追加内容. appendTo() 向匹配的元素内部追加内容. attr ...

