• 熊拖泥的专栏「独立游戏开发群英会:姚姚丸」

    代表作: 《最终幻想13》、《最终幻想纷争012》、《零式》、《王国之心 3D》、《最终幻想15》、《最终幻想13雷霆回归》。

  • 虚拟现实教程汇总

    如果你希望在Oculus Rift DK2、Gear VR和Cardboard上开发内容,那么你一定会喜欢这个系列教程的!查看详情

  • Spine新手入门教程

    Spine 是一款针对游戏的 2D 骨骼动画编辑工具。 Spine 旨在提供更高效和简洁 的工作流程,以创建游戏所需的动画。

  • Quick-Cocos2d-x初学者教程汇总

    Quick(Quick-Coco2d-x)是 Cocos2d-lua 的一个豪华增强和扩展版本,它重写了支持代码、解决了内存泄露和只能使用全局函数做回调等等问题。Quick 能让开发者使用 Lua 这种简单易懂的脚本语言来编写游戏,并大大提高了开发效率。

  • 玄学之夜

    在散发着铜臭味的商业游戏环境里,还能有一群人如此纯粹的去探讨和分析游戏,夸张点说似乎与大环境有些格格不入,故而感觉很玄,后来闲谈的录音放在网上,俗称“玄学之夜”。去看看

『玄学之夜』强档节目,每周六晚9:00定期开聊游戏圈轶事,『雅文』和业内大神探讨分析纯粹的游戏。参与群语音请加群:8198073,录播合集猛戳 这里。

iPhone开发之深入浅出 (4) — ARC之循环参照

本文由易飞扬的博客出品,泰然授权转载,如需转载请联系原版权方。

原文链接:http://www.yifeiyang.net/development-of-the-iphone-simply-4/

概念

当我们使用强参照(Strong reference)时,往往需要留意 循环参照 的问题。循环参照指的是两个对象被互相强参照,以至于任一对象都不能释放。

一般情况下,当对象之间有“父子关系”时,强参照的情况发生的比较多。比如通讯薄对象AddrBook和每个通讯录Entry的关系如下。





阅读全文»

iPhone开发之深入浅出 (3) — ARC之前世今生

本文由易飞扬的博客出品,泰然授权转载,如需转载请联系原版权方。

原文链接:http://www.yifeiyang.net/development-of-the-iphone-simply-3/
前两节我们对 ARC(Automatic Reference Counting) 有了一个基本的理解,但是 ARC 是怎么产生的,为什么苹果要在其最新的 iOS/Mac OS X 上导入该框架? 如果不理解其背后的基本原理,只是死记硬背那些规则/方法,是毫无意义的。就像我们从小接受的填鸭式教育,基本上到后来都还给老师了。

本节,我们先来看看 ARC 产生之前的 Objective-C 内存管理世界,然后再来看看导入 ARC 后,新的 LLVM 编译器在背后为我们做了什么。

Objective-C 内存管理

和许多面向对象语言一样,Objective-C 中内存管理的方式其实就是指 引用计数 (Reference Counting)的使用准则。如下图所示,对象生成的时候必定被某个持有者拿着,如果有多个持有者的话,其引用计数就会递增;相反失去一个持有者那么引用计数即会递减,直到失去所有的持有者,才真正地从内测中释放自己。





阅读全文»

iPhone开发之深入浅出 (2) — ARC之@property使用

本文由易飞扬的博客出品,泰然授权转载,如需转载请联系原版权方。

原文链接:http://www.yifeiyang.net/development-of-the-iphone-simply-2/

上一回我们学到了一些ARC的基本概念,这一次我们来看看ARC对@property的使用规则有何影响。

所有者属性

我们先来看看与所有权有关系的属性,关键字间的对应关系。

属性值 关键字 所有权
strong __strong
weak __weak
unsafe_unretained __unsafe_unretained
copy __strong
assign __unsafe_unretained
retain __strong
strong
该属性值对应 __strong 关键字,即该属性所声明的变量将成为对象的持有者。
weak
该属性对应 __weak 关键字,与 __weak 定义的变量一致,该属性所声明的变量将没有对象的所有权,并且当对象被破弃之后,对象将被自动赋值nil。并且,delegate 和 Outlet 应该用 weak 属性来声明。同时,如上一回介绍的 iOS 5 之前的版本是没有 __weak 关键字的,所以 weak 属性是不能使用的。这种情况我们使用 unsafe_unretained。
unsafe_unretained
等效于__unsafe_unretaind关键字声明的变量;像上面说明的,iOS 5之前的系统用该属性代替 weak 来使用。
copy
与 strong 的区别是声明变量是拷贝对象的持有者。
assign
一般Scalar Varible用该属性声明,比如,int, BOOL。
retain
该属性与 strong 一致;只是可读性更强一些。

阅读全文»

iPhone开发之深入浅出 (1) — ARC是什么

开篇:早就和易飞扬说过要转载他的这个出色的系列教程,感谢易飞扬的辛勤劳动,以及很多博客主对这个行业的贡献。(by Iven)
原文链接:http://www.yifeiyang.net/development-of-the-iphone-simply-1/

ARC是什么

ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。

该机能在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机能。简单地理解ARC,就是通过指定的语法,让编译器(LLVM 3.0)在编译代码时,自动生成实例的引用计数管理部分代码。有一点,ARC并不是GC,它只是一种代码静态分析(Static Analyzer)工具。

阅读全文»

Block使用中的一些疑问解答

本文由泰然教程组 jesse 原创,版权所有,转载请注明原出处,并通知原作者!!!

原文地址:http://jessex.me/archives/181

本文主要是阐述一下Block中如何的使用外部变量以及block本身的内存管理。

先定义一个block变量,作为后续的例子中使用:

typedef void(^BlockCC)(void);
BlockCC _block;



阅读全文»

当程序崩溃的时候怎么办 Part-2

泰然教程组出品,转载请保留出处并通知泰然!翻译:大侠自来也;校对:Iven

原文地址:http://www.raywenderlich.com/10209/my-app-crashed-now-what-part-2

欢迎回到当程序崩溃的时候怎么办 教程!

在这个教程的第一部分,我们介绍了SIGABRT和EXC_BAD_ACCESS错误,并且举例说明了一些使用xcode调试器(Xcode debugger)和异常断点(Exception Breakpoints)解决问题的策略。

但是我们的app仍然有一些问题!就像我们看到的,他工作的并不是很好,并且这里仍然有许多潜在的可能崩溃的问题。

幸运的是,在这个教程的第二部分,也是最后一部分,我们可以学习更多的技术来处理这些问题。

所以我们就不在啰嗦了,让我们回到继续修正这个充满bug的app中吧!

Learn how to debug and fix dreaded app crashes!

阅读全文»

cocos2d-x制作太空射击游戏教程part-2

这篇文章是由iOS教程组成员Jean-Yvers Mengant发表——一名富有经验的Androidios工程师

翻译:糖炒小虾、蓝羽、benna、子龙山人、傑西、sile;校对:Iven,子龙山人;转载请注明出处并通

知泰然!


在这篇教程里,我将向你展示如何利用 How to Make

a Space Shooter iPhone Game
里创建的工程制作一个太空游戏。

(原文翻译下载:如何使用cocos2d制作一个太空射击游戏.pdf

Learn how to make a cross-<br />
<br />
platform space game!

这里有一个主要的区别——这次是用跨平台的cocs2d-x开发。

这就意味在教程里开发的游戏可以在你的iphone和andorid上运行。当然,再稍微做修改,你可以让它在Windows、Linux或者Mac下运行。

阅读全文»

cocos2d-x跨android&ios平台开发入门教程part-1

原文链接地址:http://www.raywenderlich.com/11283/cocos2d-x-for-ios-and-android-getting-started

本教程由泰然教程组出品;翻译:子龙山人,校对:Iven;转载请注明出处并通知泰然。

教程截图:

    Cocos2D是一个非常棒而且非常容易使用的游戏框架,但是,由于它是基于objc语言的,所以你只能使用它来开发iosmac下面的游戏。

    假如你可以使用和cocos2d相似的api来开发android上面的游戏,那岂不是更爽?这样,你就可以毫不费劲地扩大你的游戏的市场份额(android的用户数量巨大啊!)

阅读全文»

如何给你的iOS游戏加入动态背景音乐

翻译:蓝羽, benna , outman校对:Sharyu

 

还记得当索尼克开始潜水时,音乐变得戏剧化的情景吗?很抱歉引起那些焦虑的回忆,但是这是动态背景音乐很好的一个例子。我将展示如何根据游戏的动作增加无缝情绪变化的音乐。

阅读全文»

当程序崩溃的时候怎么办 part-1

本文由   大侠自来也   翻译(泰然翻译组),转载请注明出处并通知泰然。

有这样一种情形:当我们正在快乐的致力于我们的app时,并且什么看都是无比顺利,但是突然,坑爹啊,它崩溃了。(悲伤地音乐响起)



我们需要做的第一件事就是:不要惊慌。

修复崩溃不是很困难的。假如你崩溃了,并且胡乱的改些东西,而且还在不停的念着咒语希望bug神奇的自动消失,你大多数情况下都会使情况更麻烦。相反的,你需要知道一些系统的方法,并且学习怎么找到崩溃和他的原因。

阅读全文»

?>