Cocos2d开发系列 一
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
Cocos2d是一个比较流行的iphone游戏开发框架,据说在AppStore 上已有超过 100 个游戏是基亍 Cocos2D-iPhone。其中 3 个由此 迚入过 TOP 10 的排名。其中的 StickWars 更是曾排名第一。现在,让我们来开始Cocos2d的学习之旅吧!
一、安装下载
Cocos2d下载地址:http://code.google.com/p/cocos2d-iphone/downloads/list
当前最新版本为1.0。本教程选用的是稳定版本0.99.5。
下载文件为targ.gz格式,将其解压到某个目录下,打开该目录,找到install-templates.sh文件,这个就是Cocos2d的安装脚本。
你可以直接在终端里运行这个脚本进行安装,但如果你的Xcode没有安装在默认目录 下,则你需要在命令中添加一个参数。
例如,你的Mac中可能同时存在一个Xcode版本(3.2.5),安装目录为:/Users/$yourname$/Developer,如果你想将Cocos2d安装到这个Xcode(3.2.5),则需要使用用命令:
./install-templates.sh /Users/$yourname$/Developer
来进行安装。
安装完毕,你可以打开Xcode,新建Project,你会在UserTemplates目录下看到多了4个Cocos2d Application模板(如果是0.99版本,则只有3个模板):
二、新建 cocos2dApplications项目
新建一个cocos2dApplications项目,编译运行效果如下:
打开HelloWorldScene.h,可以看到如下代码:
#import "cocos2d.h"
// HelloWorld Layer
@interface HelloWorld : CCLayer
{
}
// returns a Scenethat contains the HelloWorld as the only child
+(id) scene;
@end
首先,import指令导入了cocos2d.h,在这个.h文件中,已经包含(import)了cocos2d的所有类。因此我们导入了cocos2d.h后,就不需要再一个个导入要用到的cocos2d类了。
其次,HelloWorldScene.h中定义了一个CCLayer子类。CCLayer即所谓“层”的概念。层是一个容器的概念,cocos2d在层上放置多个动画元素,如文字、标签、图片、菜单,此外层接收触摸和加速器事件。
第三,定义了一个静态方法,返回了一个——Scene,这个Scene实际上包含了一个层——HelloWorld,这是一个不错的实例化方法。Coco2d中Scene的概念,类似于电影中“场景”的概念--由于受舞台空间或屏幕空间的限制,一个情节往往只能在固定的空间环境中展现,而电影往往是由许多个情节构成, 随着剧情的发展,场景也需要改变,新的场景需要产生。所以电影就会在一幕幕场景中进行切换 ,这种切换被称为“转场”。
切换到HelloWorldScene.m :
#import "HelloWorldScene.h"
// HelloWorldimplementation
@implementation HelloWorld
上面导入了HelloWorldScene.h并实现了HelloWorld类。O-C中,文件名不见得需要和类名一致。
+(id) scene
{
……
}
这个方法就不介绍了,和前面说过的一样。
-(id) init
{
if( (self=[super init] )) {
CCLabelTTF *label = [CCLabelTTF labelWithString:@"HelloWorld" fontName:@"MarkerFelt" fontSize:64];
CGSize size = [[CCDirector sharedDirector] winSize];
label.position = ccp(size.width /2 , size.height/2 );
[self addChild: label];
}
return self;
}
init方法中,创建了一个标签 CCLabelTTF (以前是CCLabel)并让他居中。ccp函数是CGPointMake函数的缩写。
接下来,看一下应用程序委托,如果你有过Cocoa编程的经验,那么会发现这就是一个UIApplicationDelegate,它的主要方法是 applicationDidFinishLaunching:(UIApplication*)application :。
,并将EAGLView绑定到
首先取得Director——导演。导演是cocos2d程序的统筹者和协调者,负责整个应用程序的主窗口的创建,以及每个场景在时间线上的先后顺序。
CCDirector *director = [CCDirector sharedDirector];
然后创建EAGLView实例。 EAGLView 派生亍类 UIView, 苹果公司用它来实现 OpenGL 输出支持,以支持OpenGLES 编程:
EAGLView *glView = [EAGLView viewWithFrame:[window bounds]
pixelFormat:kEAGLColorFormatRGB565
depthFormat:0
];
并将EAGLView绑定到导演的openGLView属性:
[director setOpenGLView:glView];
设置横屏:
setDeviceOrientation:kCCDeviceOrientationLandscapeLeft];
设置帧间隔(尚未实现):
[director setAnimationInterval:1.0/60];
设置帧率显示,即屏幕左下角不断变化的数字:
[director setDisplayFPS:YES];
设置渲染格式位32位RGB:
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
移除闪屏,即一开始的那个coco2d Logo标志的屏幕:
[self removeStartupFlicker];
显示HelloWorld文字标签的场景:
[[CCDirector sharedDirector] runWithScene: [HelloWorld scene]];
}
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
Cocos2d开发系列 一相关推荐
- Cocos2d开发系列
Cocos2d开发系列(五) 分类: iPhone开发2011-05-03 14:50 5020人阅读 评论(0) 收藏 举报 <Learn IPhone and iPad Cocos ...
- Cocos2d开发系列(一)
Cocos2d是一个比较流行的iphone游戏开发框架,据说在 AppStore 上已有超过 100 个游戏是基亍 Cocos2D-iPhone.其中 3 个由此 迚入过 TOP 10 的排名.其中的 ...
- Cocos2d开发系列(二)
一.安装cocos2d文档集 为了便于今后检索Coco2d的各种类.方法.属性,我们最好将cocos2d的文档安装到Xcode中.作者Blog中曾有一篇译文<使用Doxgen创建Xcode文档集 ...
- Cocos2d开发系列(四)
<Learn IPhone and iPad Cocos2d Game Delevopment>的第5章. 一.使用多场景 很少有游戏只有一个场景.这个例子是这个样子的: 这个Scene中 ...
- Cocos2dx游戏开发系列笔记3:牛刀小试-忍者飞镖射幽灵的Demo
2019独角兽企业重金招聘Python工程师标准>>> 就是这个例子,应该很简单,主要用到的有:精灵的移动,触摸,碰撞检测. 赶紧搞定,待会还要陪哲哲来几局爱消除. 首先在Scene ...
- Cocos2dx游戏开发系列笔记11:解刨《战神传说》完结篇
懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 ) 两点: 1 感谢 net19880504 同学,在上篇提到:想让骨头继续写<战神传说> ...
- 最实用的30个iPhone开发系列源码
2019独角兽企业重金招聘Python工程师标准>>> iPhone开发中有很多特性让人云里雾里,同时iOS源代码的例子也不是很好找,本人深受其苦,推己及人,搜集整理最实用的30个i ...
- iOS开发系列--让你的应用“动”起来
概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ...
- iOS开发系列--通知与消息机制
http://www.cocoachina.com/ios/20150318/11364.html 概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣 ...
最新文章
- 《微信小程序开发》学习情况大调查!
- 如何帮孩子成为最好的自己
- centos搭建rsync服务!
- iptables防火墙工作原理及简单配置访问策略
- linux系统管理:认识安装linux(一)
- 多个点 最远距离 java_Java实现的计算最大下标距离算法示例
- 凑热闹买了个小米剃须刀
- 常用的ajax的代码
- 转置矩阵使用T,Hermite矩阵、正交矩阵、酉矩阵、奇异矩阵、正规矩阵、幂等矩阵
- 搜狗泛站群之搜狗批量提交软件
- Movielens/IMDB电影数据分析(一)
- win10计算机管理中没有本地用户和组怎么办
- luogu4061 大吉大利,晚上吃鸡!
- Python输入身高体重并计算BMI
- 又一北京“假名媛”曝光,蹭吃蹭喝21天,暴露人性最真实一面
- ip中继对接_无线路由中继以及本地固定IP设定
- 喜茶“内修”,蜜雪冰城“外练”
- hbuilder版本更新失败_HBuilderX版本升级问题引发的血案(持续更新中)
- CentOS 7 安装极点五笔输入法
- 盒子滚动到底部有偏差 js_干货丨JS 经典实例收集整理
热门文章
- ExpandableListView,默认箭头放到右侧
- 2023-03-08 Incident: Infrastructure connectivity issue affecting multiple regions
- 使用乱码过滤器解决网页出现乱码的三种方法
- 普通空调实现远程控制基础知识解读
- Jetson Nano从零开始(1):介绍
- 微软将在新版Edge浏览器中支持广告拦截器
- Sketch 53.2 最新版抢先下!Sketch 53.2最新功能介绍
- android 系统驱动调试
- coderforce Educational Codeforces Round 10 C. Foe Pairs(贪心)
- python turtle写英文_python turtle 书写新年快乐