在我們創(chuàng)建一個cocos-2d模板之后,系統(tǒng)自動生成一個場景Demo,運行結(jié)果顯示HelloWord
創(chuàng)新互聯(lián)公司專注于梨樹網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供梨樹營銷型網(wǎng)站建設(shè),梨樹網(wǎng)站制作、梨樹網(wǎng)頁設(shè)計、梨樹網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造梨樹網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供梨樹網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。創(chuàng)建一個cocos2d ios工程
運行結(jié)果,我們點擊Achievments 和 LeaderBoard 會分別跳轉(zhuǎn)到其他場景
創(chuàng)建工程里面目錄結(jié)構(gòu)
上面的六個.h和.m文件如果需要實現(xiàn)某功能是需要開發(fā)者在里面編輯代碼的,Resouces文件夾用于存放圖片,聲音文件文字文件plist文件等文件,這樣組織便于我們進(jìn)行管理工程里面文件;libs下的文件就是cocos2d引擎了,存放的是源文件,因為它屬于開源,所以可以看到他底層實現(xiàn)原理;還有常用的framework框架
生成的第一個HelloWord代碼實現(xiàn)全都在HelloWorldLayer.h HelloWorldLayer.h和HelloWorldLayer.m文件中-(id)initf方法中,貼上他的源代碼
// on "init" you need to initialize your instance -(id) init { // always call "super" init // Apple recommends to re-assign "self" with the "super's" return value if( (self=[super init]) ) { // create and initialize a Label CCLabelTTF *label = [CCLabelTTF labelWithString:@"Hello World" fontName:@"Marker Felt" fontSize:64]; // ask director for the window size CGSize size = [[CCDirector sharedDirector] winSize]; // position the label on the center of the screen label.position = ccp( size.width /2 , size.height/2 ); // add the label as a child to this Layer [self addChild: label]; // // Leaderboards and Achievements // // Default font size will be 28 points. [CCMenuItemFont setFontSize:28]; // Achievement Menu Item using blocks CCMenuItem *itemAchievement = [CCMenuItemFont itemWithString:@"Achievements" block:^(id sender) { GKAchievementViewController *achivementViewController = [[GKAchievementViewController alloc] init]; achivementViewController.achievementDelegate = self; AppController *app = (AppController*) [[UIApplication sharedApplication] delegate]; [[app navController] presentModalViewController:achivementViewController animated:YES]; [achivementViewController release]; } ]; // Leaderboard Menu Item using blocks CCMenuItem *itemLeaderboard = [CCMenuItemFont itemWithString:@"Leaderboard" block:^(id sender) { GKLeaderboardViewController *leaderboardViewController = [[GKLeaderboardViewController alloc] init]; leaderboardViewController.leaderboardDelegate = self; AppController *app = (AppController*) [[UIApplication sharedApplication] delegate]; [[app navController] presentModalViewController:leaderboardViewController animated:YES]; [leaderboardViewController release]; } ]; CCMenu *menu = [CCMenu menuWithItems:itemAchievement, itemLeaderboard, nil]; [menu alignItemsHorizontallyWithPadding:20]; [menu setPosition:ccp( size.width/2, size.height/2 - 50)]; // Add the menu to the layer [self addChild:menu]; } return self; }
剛開始接觸,里面很多類都不知道,但是能看懂大部分代碼作用,工程里面自動添加有句釋,又容易理解些
現(xiàn)在我們創(chuàng)建一個自己的場景,
在cocos-2d_2文件下右鍵,選擇New File
出現(xiàn)CCNode Class ,
點擊Next,選擇Subclass of CCLayer,在Next,新建文件名為MyScenen
在Myscene.h里面添加
+(CCScene *) scene;方法,在MyScene.m實現(xiàn)
+(CCScene *)scene { // +(id)node 靜態(tài)初始化 CCScene *scene = [CCScene node]; MyScene *layer = [MyScene node]; // 把MyScene對象layer添加到CCScene對象中 [scene addChild:layer]; // 把CCScene對象返回給調(diào)用者 return scene; }
再到IntroLayer.h文件中添加頭文件,在IntrolLayer.m中最后面修改一個方法 -(void) makeTransition:(ccTime)dt ,把HelloWorldLayer替換成MyScene
-(void) makeTransition:(ccTime)dt { [[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[MyScene scene] withColor:ccWHITE]]; }
現(xiàn)在在場景上添加一個Label
-(id) init { if( (self=[super init]) ) { // 創(chuàng)建一個標(biāo)簽,設(shè)置字體樣式和大小 CCLabelTTF *label = [CCLabelTTF labelWithString:@"創(chuàng)建一個標(biāo)簽" fontName:@"Marker Felt" fontSize:64]; // 獲取主窗口大小 CGSize size = [[CCDirector sharedDirector] winSize]; // 設(shè)置標(biāo)簽的場景位置 label.position = ccp( size.width /2 , size.height/2 ); // 把標(biāo)簽添加到這個 [self addChild: label]; } return self; }
運行效果
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。