如何在 Mac 上创建一个 cocos2d 的项目

如何在 Mac 上创建一个 cocos2d 的项目,第1张

概述转载自:http://disanji.net/2010/11/20/howto-create-a-cocos2d-mac-project/ 我已经关注cocos2d小组一段时间了,他们最近的发布版本支持在Mac OS X系统上创建项目。也许是为即将上线的Mac App Store作准备,cocos2d团队正在努力使得从iPhone/iPad到Mac OS X上程序的移植更简单。 目前似乎并不能10

转载自:http://disanji.net/2010/11/20/howto-create-a-cocos2d-mac-project/

我已经关注cocos2d小组一段时间了,他们最近的发布版本支持在Mac OS X系统上创建项目。也许是为即将上线的Mac App Store作准备,cocos2d团队正在努力使得从iPhone/iPad到Mac OS X上程序的移植更简单。

目前似乎并不能100%地支持Mac OS X系统,但是基础功能可以实现。你或许比较关心如何使自己iPhone上的项目转而支持Mac OS X,实话说我没找到简单的方法,因此倘若有人可以站出来帮我的话,我非常感激。但是这篇教程的目的将是创建一个新的应用程序。

下面让我们回顾一下为完成这个任务而需要的步骤。

这里可以下载最新的@L_502_1@。完成下载之后,解压到Mac上的文件夹中。

创建新的Cocoa工程。 将Cocos2d资源添加到项目中 编辑AppDelegate.h 和AppDelegate.m文件 引入架构 创建新的Objective-C的类 为MainMenu.xib更改Interface Builder中的设置 引入样例文件

我还得说这不一定是在OS X上创建使用Cocos2d的项目的最好的或唯一的方式,有一些步骤可能是多余的或者是不对的。下面只是我采取的步骤,如果你们有更好的建议来使这篇教程更完善,请放心的告诉我。

创建新的Cocoa工程

首先我们需要打开Xcode之后开始新的项目。然而这一次,我们将用在Mac OS X->Application下的Cocoa Application模板而不是预定义的cocos2d模板。下面是屏幕截图:

一旦你创建了新的项目,你会看到Xcode界面出现。这篇教程中我的程序命名为Demo Mac Port。你的屏幕跟下面的截图看起来应该差不多。

在下一步将要添加cocos2d资源到项目中,确定你已经下载了支持Mac OS X的最新的cocos2d的版本。

将Cocos2d资源添加到项目中

这一步你需要cocos2d文件,如果你还没有下载,那么你可以在这里下载最新版本。下载后解压到你的硬盘上。

解压缩之后,打开cocos2d-iphone-0.99.5-beta3文件夹找到cocos2d文件夹。屏幕截图如下:

这个文件夹需要添加到工程中。我通常把它直接从文件查找窗口拖拽到工程中。只需拖拽到在程序名下工程中,与下面截图类似的一个对话框就会出现:

之后你的Xcode工程界面跟下面看起来相似:

下一个环节将引导你修改AppDelegate.h 和AppDelegate.m文件。

编辑AppDelegate.h 和AppDelegate.m文件

这一部分你会修改这两个文件使它们与Cocos2d相兼容。我在这里不会解释代码但是详细的代码我粘贴在下面:

AppDelegate.h

1234567891011121314151617181920212223
#import "cocos2d.h" @class CCSprite; //CLASS INTERFACE#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED@interface AppController : NSObject{	UIWindow *window;}@end #elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)@interface Demo_Mac_PortAppDelegate NSObject  {    NSWindow *window_;	MacGLVIEw *glVIEw_;} @property (assign) IBOutlet *window;) IBOutlet MacGLVIEw *glVIEw; @end#endif // Mac

AppDelegate.m

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
// 动作演示// a cocos2d example// http://www.cocos2d-iphone.org// //本地引入#import "cocos2d.h"#import "Demo_Mac_PortAppDelegate.h"#import "DemoScene.h" // CLASS IMPLEMENTATIONS #ifdef __IPHONE_OS_VERSION_MAX_ALLOWED #pragma mark AppController - iOS @implementation AppController - (voID) applicationDIDFinishLaunching:(UIApplication*)application{	// CC_DIRECTOR_INIT()	//	// 1. 初始化一个0bit深度的EAGLVIEw,和一个RGB565的渲染器	// 2. EAGLVIEw 多点触摸不使能	// 3. 创建一个UIWindow设置其为window变量	// 4. 将EAGLVIEw的父类设为新创建的window	// 5. 创建显示链接指针	// 5a. 如果失败了,会使用一个NSTimer 指针	// 6. 运行在60fps	// 7. 不现实fps	// 8. 设备情况:细节描写(portrait)	// 9. 将这个指针连到EAGLVIEw	//	CC_DIRECTOR_INIT()// 获取共享指针...	CCDirector *director = [CCDirector sharedDirector]//设置景深模式	[director setDeviceOrIEntation:kCCDeviceOrIEntationLandscapeleft// 开启显示fps	[director setdisplayFPS:YES// 开启高级资源模式 (Retina display) on iPhone 4 and maintains low res on all other devices	if [UIScreen instancesRespondToSelector@selector(scale)])		[director setContentScaleFactor[[UIScreen mainScreen] scale// 为PNG/BMP/TIFF/JPEG/GIF 设置默认文本格式	// 可以是 RGBA8888,RGBA4444,RGB5_A1,RGB565	// 你可以随时改变.	[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888]; 	CCScene *scene [CCScene node];	[scene addChild: [nextAction) node][director runWithScene: scene]} // 发生调用,暂停游戏-) applicationWillResignActive(UIApplication {	] pause];// 调用被拒绝) applicationDIDBecomeActive] resume// 程序将结束)applicationWillTerminate{	CC_DIRECTOR_END);// 置于后台) applicationDIDEnterBackground] stopAnimation// 置于前台) applicationWillEnterForeground] startAnimation// 清理内存)applicationDIDReceiveMemoryWarning] purgeCachedData} ) dealloc[window release[super dealloc// next delta time will be zero) applicationSignificantTimeChange] setNextDeltaTimeZero#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED) #pragma mark AppController - Mac@implementation Demo_Mac_PortAppDelegate @synthesize window=window_,glVIEw=glVIEw_; )applicationDIDFinishLaunching(NSNotification )aNotification { 	CCDirector [director setopenGLVIEw:glVIEw_// Enable "moving" mouse event. Default no.	[window_ setAcceptsMouseMovedEventsNO] runWithScene[DemoScene scene#endif

使用applicationDIDFinishLaunching方法,你会注意到[[CCDirector shardDirector] runWithScene:[DemoScene scene]]这一行。这一行定义了我们打算令工程开始的视图。在下一部分我会为一个新的Objective-C类列出更多的代码。

创建新的Objective-C的类

在此时我们需要创建新的Objective-C的类。右击你的Xcode工程界面上的Classes group,之后点击Add->New file.你会看到下面的对话框:

点击下一步你会看到:

我已经命名我的类为DemoScene.m ,注意检查创建相应的DemoScene.h的方框选中。点击finish,可以看到新的类。下面是这两个文件中的代码,如果你对cocos2d熟悉,那么下面的代码你不会陌生:

DemoScene.h

1234567891011121314151617181920212223242526272829
//// DemoScene.h// Demo Mac Port// 由 Chris Fletcher在2010/24/10创建.// copyright 2010 __MyCompanyname__. All rights reserved.// #import@interface DemoSceneLayer : cclayer *Director; @end @interface DemoScene : CCScene {  DemoSceneLayer *_layer; (nonatomic,retain) DemoSceneLayer *layer; +ID)scene; @end

DemoScene.m

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
// DemoScene.m#import "DemoScene.h" @implementation DemoScene@synthesize layer = _layer; + )scene {  CCScene ]; DemoSceneLayer *layer [DemoSceneLayer node:layer]return scene; ) init {  (self [super init) {  self.layer ]; [self addChild:_layer} return self;@implementation DemoSceneLayer )init {  CGSize winSize ].winSize;  CCSprite *starBG [CCSprite spriteWithfile:@"starbg.png" rect:CGRectMake(0,960,217)">640]; starBG.position = ccp(winSize.wIDth/2,winSize.height2); :starBG) dealloc {  正如你所看到的,我们为图层(layer)和视图(scene)创建了接口和实现,之后将CCSprite添加到图层中。这是非常基础的Cocos2d功能,但是对于你上手来说足够了。

目前我们还是不能建造和运行这个工程。还有一些事情要处理,引入一些框架和图片并且作一些修改。下一部分将会涉及我们需要引入的框架。

引入额外的框架

这一部分设计我们需要添加的框架以及如何添加框架。我们需要添加的框架如下:

QuartzCore.framework OpenGL.framework applicationservices.framework libz.dylib

在Framework上右击,然后点击Add->Existing Frameworks.之后下面的窗口会出现:

找到QuartzCore.framework然后点击添加,重复该步骤添加剩下的三个。

在你完成添加之后,Xcode工程界面应该跟下图类似:

之后我们需要做的就是引入一些图片然后做一些界面的修改。这篇教程比较长,但是我保证快到结尾了。下一部分我会快速讲述需要添加的图片。

将图片添加到工程中

在DemoScene.m中使用了CCprite,该CCprite使用了一个名为starBG.png的图片。你可以在这里下载该图片。

Cocos2d资源要求我们的资源文件夹中有一个称作fps_images.png的文件来渲染在底部左边角出现的图片。你可以在解压缩后的Cocos2d/Resources/Fonts 文件夹中找到这个文件。

之后你把这两个文件放到Xcode工程的资源文件夹中。

此时我们已经完成了对Xcode工程来说必需的步骤,唯一未完成的是使用界面编辑器(Interface Builder)来为我们的MainMenu.xib文件做一些改动。

MainMenu.xib 与Interface Builder

在Xcode 工程界面中找到MainMenu.xib。它应该位于你的资源文件夹中。双击这个文件,会启动界面编辑器。

界面编辑器启动后,首先需要确定程序窗口的大小。为了简化,我设置窗口为960*640大小,因为我的图片本来都是为iPhone4准备的。

在你调整完大小后,屏幕截图如下:

你需要在Window Attributes中改变设置。在底部找到One Shot的标志然后不勾选这一项:

在改变窗口大小和取消One Shot模式之后,我们需要添加一个OpenGL的视图。在library中向下滚动查找OpenGL VIEw。将它拖入你的窗口。你现在可以看到下面的图:

将该OpenGL视图的大小调整为窗口大小,窗口变化如下:

现在窗口和Open GL视图大小都是960*640,下面需要对该视图做一些改变。首先,要将该类变为MacGLVIEw。选中OpenGL视图在IDentity 标签下将它的名字改为MacGLVIEw。

下一步,点击Attributes 标签,具体设置如下图所示:

在你完成上面的修改之后,下面是最后的修改。我们需要在OpenGL VIEw的AppDelegate中创建一个到glVIEw的链接。因此创建这个链接的具体设置如下所示:

现在我们已经完成了界面编辑,保存退出界面生成器,返回Xcode工程。在此时为在Mac OS X上运行cocos2d程序的准备都完成了,启动你的程序之后你可以看到如下所示的截图:

恭喜,你已经完成了在Mac OS X上创建程序的基础模块。在创建这个教程的时候我努力使它周密并且希望没有遗漏什么东西。你可以在下面下载该工程文件。

Demo Mac Port (6.9M)

这个教程有用么?你已经利用该教程在Mac上创建基于cocos2d的程序了么?期待您的反馈。

原文作者:Chris Fletcher

原文链接:http://chris-fletcher.com/2010/10/24/howto-create-a-cocos2d-mac-project/

总结

以上是内存溢出为你收集整理的如何在 Mac 上创建一个 cocos2d 的项目全部内容,希望文章能够帮你解决如何在 Mac 上创建一个 cocos2d 的项目所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1058435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存