- 博客(25)
- 资源 (10)
- 收藏
- 关注

原创 开发中常见问题集锦
<!--#article_content h2 {background:none repeat scroll 0 0 #5db4dc; clear:both; color:#000000; font-family:'Courier New'; font-size:18px; margin:10px 0; padding:6px 20px}-->这
2013-02-25 17:02:05
13516
4
原创 Mac环境下svn的使用
在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简单的配置。我们首先来看下,如何在Mac环境下搭建svn服务器端环境。创建代码仓库,用来存储客户端所上传的代码我先在/User/apple目录下新建一个svn目录,以后可以在svn
2013-03-10 01:02:35
446811
7
原创 让UIWebView弹出键盘上的按钮显示中文
UIWebView是一个很常用的视图,一般用来加载网页,比如百度:点击文本框输入框后,会弹出一个带有toolbar的键盘,toolbar中有3个辅助按钮有了这3个按钮,是方便很多,但默认是英文的,有时我们想把按钮文字变为中文其实办法很简单,只需要让你的应用程序支持中文本地化,意思是在项目中新建一个中文的本地化文件夹zh-Hans.lproj如果还不太了解
2013-02-28 15:57:11
10490
1
原创 iOS图片拉伸技巧
纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能、极强的用户体验、华丽简洁的外观。华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设计好的图片,将会糟蹋了这些设计,功亏一篑。比如下面张图片,本来是设计来做按钮背景的: button.png,尺寸为:24x60现在我们把它用作为按钮背景,按钮尺寸是150x50: //
2013-02-26 21:40:49
150949
7
原创 loadView、viewDidLoad及viewDidUnload的关系
标题中所说的3个方法,都是UIViewController的方法,跟UIViewController的view属性的生命周期息息相关。接下来我会一一阐述它们的作用以及它们之间的联系。loadView1.什么时候被调用?每次访问UIViewController的view(比如controller.view、self.view)而且view为nil,loadView方法就会被调用。2.
2013-02-26 15:49:14
45727
1
原创 九、CCAction
之前介绍CCNode的时候说过,动作是指在特定时间内完成移动、缩放、旋转等操作的行为,节点可以通过运行动作来实现动画效果,这里的动作就是指CCAction对象,它有很多的子类,每个子类都封装了不同的动作效果。先来看看CCAction的继承结构图这里我省略了瞬时动作(CCActionInstant)和间隔动作(CCActionInterval)的子类,因为它们又包含了非常多的子类,待会再
2013-02-23 00:42:32
9191
1
原创 八、CCMenu和CCMenuItem
游戏中经常会提供一些菜单项让用户开始游戏、暂停\继续游戏、打开\关闭音乐或者是返回到上一个界面,比如下面两张图中用红色线框标记的菜单项 我们可以使用CCMenu和CCMenuItem实现上述的菜单功能,CCMenu继承自CCLayer,只能添加CCMenuItem为子节点。一个CCMenuItem就可以表示一个菜单项。CCMenuItem继承自CCNode,来看下它的继承结构
2013-02-23 00:15:18
6415
原创 四、CCSprite
在介绍CCSprite之前,先要理解游戏开发中的一个核心概念:精灵。精灵也称为游戏对象,它可以用来表示游戏中的任何物体,比如敌人、子弹、甚至是一个背景图片、一段文字。CCSprite可以说是在cocos2d中最常用的一个类,可以称之为"精灵类",它能够以图片的形式将精灵显示到屏幕上。创建精灵在谈怎么创建一个精灵之前,先了解下游戏开发中另一个核心概念:纹理。纹理其实就是用来描述物
2013-02-22 16:19:21
5020
原创 七、CCScene
CCScene一般情况是游戏里面的根节点,称之为"场景",运行游戏时需要通过CCDirector启动第一个场景。当然,游戏稍微复杂一点的话,可能会包含很多个场景,这就涉及到场景的切换,也是通过CCDirector来完成。CCScene是个抽象的概念,也没有可视化显示的功能,对比CCNode,CCScene基本上没有额外的代码:// CCScene.h#import "CCNode.h"
2013-02-22 13:20:27
5540
原创 六、CCLayer
一个游戏中可以有很多个场景,每个场景里面又可能包含有多个图层,这里的图层一般就是CCLayer对象。CCLayer本身几乎没什么功能,对比CCNode,CCLayer可用于接收触摸和加速计输入。其实,cocos2d对图层并没有严格的要求,图层不一定要使用CCLayer类,它也可以是一个简单的CCNode,为什么呢?我们新建一个图层不就是为了能够容纳更多的子节点么,CCNode也可以添加子节点啊。所
2013-02-22 12:00:58
8484
原创 五、CCNode
本将主要介绍下CCNode这个类,CCNode是所有节点的基类,其中包括我们常用的CCScene(场景)、CCLayer(图层)、CCSprite(精灵)等,它是一个不能够可视化显示的抽象类,只是用来定义所有节点的公共属性和方法的。本讲纯粹是理论。首先来看看CCNode的继承结构图,只列举了常用的类节点的处理1.创建一个新的节点CCNode *node
2013-02-21 16:56:50
7028
原创 三、第一个cocos2d程序的代码分析
在第一讲中已经新建了第一个cocos2d程序,运行效果如下:在这讲中我们来分析下里面的代码,了解cocos2d的工作原理,看看屏幕上的这个"Hello World"是如何显示出来的。这是HelloWorld项目的代码结构:下面,我们开始分析项目中的这些源文件:从程序的入口点开始这么多源文件在这里,究竟先看哪个呢?有些人可能会先挑内容少的来看,觉得这样就可
2013-02-19 17:31:36
13116
1
原创 二、cocos2d文档的使用
在使用cocos2d进行游戏开发的过程中,难免要查阅cocos2d的API文档,搞清楚怎么使用某个类或者某个方法。幸运的是,cocos2d的作者已经在源代码里面添加了文档注释,我们只需要使用文档生成工具解析源代码生成文档即可。最常用的文档生成工具是Doxygen。 用Doxygen处理cocos2d文档有2种方式:第1种方式:安装Doxygen软件,解析cocos2d源代码,生成html
2013-02-19 12:53:35
6528
原创 一、第一个cocos2d程序
简介 我们这个专题要学习的是一款iOS平台的2D游戏引擎cocos2d,严格来说叫做cocos2d-iphone,因为cocos2d有很多个版本,我们学习的是iphone版本的。既然是个游戏引擎,那么它肯定是为了方便游戏开发而设计的。使用了cocos2d,你可以编写极少量的代码就做出非常cool的游戏,节省你的开发周期。当然,要想出一个大作,还必须下苦工。在iOS平台的游戏引擎还不止coco
2013-02-18 16:16:50
8369
原创 多线程编程3 - NSOperationQueue
一、简介一个NSOperation对象可以通过调用start方法来执行任务,默认是同步执行的。也可以将NSOperation添加到一个NSOperationQueue(操作队列)中去执行,而且是异步执行的。创建一个操作队列:NSOperationQueue *queue = [[NSOperationQueue alloc] init];二、添加NSOperation到NSOp
2013-02-03 01:09:58
75734
2
原创 多线程编程4 - GCD
一、简介在iOS所有实现多线程的方案中,GCD应该是最有魅力的,因为GCD本身是苹果公司为多核的并行运算提出的解决方案。GCD在工作时会自动利用更多的处理器核心,以充分利用更强大的机器。GCD是Grand Central Dispatch的简称,它是基于C语言的。如果使用GCD,完全由系统管理线程,我们不需要编写线程代码。只需定义想要执行的任务,然后添加到适当的调度队列(dispatch
2013-02-03 00:26:50
76160
1
原创 多线程编程2 - NSOperation
一、NSOperation1.简介NSOperation实例封装了需要执行的操作和执行操作所需的数据,并且能够以并发或非并发的方式执行这个操作。NSOperation本身是抽象基类,因此必须使用它的子类,使用NSOperation子类的方式有2种:1> Foundation框架提供了两个具体子类直接供我们使用:NSInvocationOperation和NSBlockOpera
2013-02-02 22:39:19
30318
1
原创 多线程编程1 - NSThread
每个iOS应用程序都有个专门用来更新显示UI界面、处理用户的触摸事件的主线程,因此不能将其他太耗时的操作放在主线程中执行,不然会造成主线程堵塞(出现卡机现象),带来极坏的用户体验。一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程编程是防止主线程堵塞,增加运行效率的最佳方法iOS支持多个层次的多线程编程,层次越高的抽象程度越高,使用也越方便,也是苹果最推荐使用的方法。下面根据抽
2013-02-02 20:37:36
28242
原创 ARC指南3 - @property
本章介绍引入ARC后@property的使用,跟ARC之前的还是很不一样的一、.h和.m文件的变化说明1.对于.h头文件,主要是将属性定义由retain变为strong@property (retain, nonatomic)变为@property (strong, nonatomic)2.在ARC之前,我们经常在.m中使用分类拓展来增加私有的propert
2013-02-02 18:02:49
8901
3
原创 ARC指南2 - ARC的开启和禁止
要想将非ARC的代码转换为ARC的代码,大概有2种方式:1.使用Xcode的自动转换工具2.手动设置某些文件支持ARC一、Xcode的自动转换工具Xcode带了一个自动转换工具,可以将旧的源代码转成ARC模式1.ARC是LLVM 3.0编译器的特性,而现有工程可能使用老的GCC 4.2或LLVM-GCC编译器,因此首先需要设置使用LLVM 3.0编译器:(现
2013-02-02 16:47:03
25821
1
原创 ARC指南1 - strong和weak指针
参考文献: iOS ARC 完全指南提示:本文中所说的"实例变量"即是"成员变量","局部变量"即是"本地变量"一、简介ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处理了一切注意:ARC 是编译器特性,而不是 i
2013-02-02 15:12:02
57385
1
原创 应用程序本地化
一、简介 * 使用本地化功能,可以轻松地将应用程序翻译成多种语言,甚至可以翻译成同一语言的多种方言 * 如果要添加本地化功能,需要为每种支持的语言创建一个子目录,称为”本地化文件夹”,通常使用.lproj作为拓展名 * 当本地化的应用程序需要载入某一资源时,如图像、属性列表、nib文件,应用程序会检查用户的语言和地区,并查找相匹配的本地化文件夹。如果找到了相应的文件夹,就会载入这
2013-02-02 11:36:56
26068
2
原创 Core Data入门
简介 Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何SQL语句,这个有点类似于著名的Hibernate持久化框架,不过功能肯定是没有Hibernate强大的。简单地用下图描述下它的作用:左边是关系模
2013-02-01 17:26:27
188816
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人