cocos2d-iphone之魔塔20層第一部分

原文鏈接http://blog.csdn.net/fire_work/article/details/8601606 html

這是我第一次寫博客,剛開始學習ios的時候我本身學了一個月基礎就開始搜索各類遊戲教程我發現大多數都 node

是很基礎,很簡單的遊戲,我跟着教程學到了不少東西,後來我想找一個魔塔開發教程,但是怎麼搜都搜不到, ios

後來我只能本身製做了,這裏我寫成教程供你們參考、學習。 app

  這款遊戲是用cocos2d製做的,cocos2d-iphone的安裝教程  http://www.himigame.com/iphone-cocos2d/415.html himi的博客鏈接地址 iphone

  咱們製做這款遊戲首先要學會使用Titled 地圖編輯器,我在這裏就不在詳細講解如何使用地圖編輯器了,himi 編輯器

和子龍山人的博客中都有教程,有興趣的童鞋能夠去看看。 學習

咱們的地圖製做完成後的截圖以下: .net

  1361504365_6150.png

咱們的遊戲地圖有8個圖層截圖以下 orm

1361504814_1171.png

    heroPoint:英雄樓層傳送點,door:門 ,downfloor:向下樓梯 ,upfloor:向上樓梯 ,enemy:敵人 , htm

item:物品 ,road:路 ,wall:牆

   準備工做就到這裏了,下面咱們開始新建項目

新建項目名稱爲:磨塔 

以下圖所示:

1361506719_6084.png


建好項目以後運行一下,運行成功以後把HelloWorldLayer文件刪除

而後在建兩個文件Menu和Scenemanager以下圖所示:

1361508180_4262.png

Menu.h文件代碼:


#import<Foundation/Foundation.h>

#import"cocos2d.h"

#import"Scenemanager.h"

//菜單

@interface Menu :CCLayer {    

}

@end


Menu.m文件代碼


#import"Menu.h"

@implementation Menu

-(id) init

{

    if ((self = [super init]))

    {

        CGSize size = [[CCDirector sharedDirector] winSize];//獲取屏幕大小

        //背景圖

       CCTMXTiledMap *tilemap = [CCTMXTiledMaptiledMapWithTMXFile:@"background.tmx"];

        tilemap.scale =1.5;

        tilemap.anchorPoint =CGPointZero;

        [selfaddChild:tilemap];

       //設置菜單項樣式

        CCSprite *mota = [CCSprite spriteWithFile:@"魔塔.png"];

        mota.position =ccp(size.width /2 +15, size.height -150);

        [selfaddChild:mota];

        CCSprite *magic = [CCSprite spriteWithFile:@"magic.png"];

        magic.position =ccp(size.width /2, size.height -280);

        [selfaddChild:magic];

        //添加菜單項

        CCSprite *playsp1 = [CCSprite spriteWithFile:@"playGame.png"];

        CCSprite *playsp2 = [CCSprite spriteWithFile:@"playGame.png"];

        playsp2.position =ccp(-20, -10);

        playsp2.scale =1.1;

        CCMenuItemSprite *play = [CCMenuItemSpriteitemFromNormalSprite:playsp1selectedSprite:playsp2target:selfselector:@selector(Play)];

        CCSprite *introducesp1 = [CCSprite spriteWithFile:@"gameintroduce.png"];

        CCSprite *introducesp2 = [CCSprite spriteWithFile:@"gameintroduce.png"];

        introducesp2.position =ccp(-20, -10);

        introducesp2.scale =1.1;

        CCMenuItemSprite *introduce = [CCMenuItemSpriteitemFromNormalSprite:introducesp1selectedSprite:introducesp2target:selfselector:@selector(Pntroduce)];

        CCSprite *exitsp1 = [CCSprite spriteWithFile:@"exitGame.png"];

        CCSprite *exitsp2 = [CCSprite spriteWithFile:@"exitGame.png"];

        exitsp2.position =ccp(-20, -10);

        exitsp2.scale =1.1;

        CCMenuItemSprite *exit = [CCMenuItemSpriteitemFromNormalSprite:exitsp1selectedSprite:exitsp2target:selfselector:@selector(Exit)];

        CCMenu *menu = [CCMenu menuWithItems:play,introduce,exit, nil];

        //

        [menualignItemsVertically];

        [selfaddChild:menu];

        play.position =ccp(0,0);

        introduce.position =ccp(0, -100);

        exit.position =ccp(0, -210);

    }

   returnself;

}

-(void) Play

{

    [ScenemanagergoPlay];

}

-(void)Pntroduce

{

}

-(void) Exit

{

    [[CCDirectorsharedDirector]end];

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)

exit(0);

#endif

}


@end

Scenemanager.h 文件代碼


#import<Foundation/Foundation.h>

#import"cocos2d.h"

//場景管理器

@interface Scenemanager :CCLayer 

{

    CCScene *scene;

}

//切換場景

+(void) goMenu;

+(void) goPlay;

@end

Scenemanager.m 文件代碼

#import"Scenemanager.h"

#import"Menu.h"

//定義私有的類方法

@interfaceScenemanager()

+(void) go:(CCLayer*) layer;

+(CCScene*) wray:(CCLayer*) layer;

@end

@implementation Scenemanager

//進入菜單

+(void) goMenu

{

    CCLayer *layer = [Menu node];

    [Scenemanagergo:layer];

}

//開始遊戲

+(void) goPlay

{

}

//切換場景

+(void) go:(CCLayer*) layer

{

    CCDirector *director = [CCDirector sharedDirector];

    CCScene *newScene = [Scenemanager wray:layer];

    if ([director runningScene]) 

    {

        [director replaceScene:newScene];

    }else

    {

        [director runWithScene:newScene];

    }

}

//初始化場景

+(CCScene*) wray:(CCLayer *)layer

{

    CCScene *newScene = [CCScene node];

    [newScene addChild:layer];

    return newScene;

}

@end

接下來找到AppDelegate.m文件

找到代碼1361510632_5360.png修改爲1361510694_9098.png

找到代碼1361510731_8973.png修改爲1361510758_5187.png


完成以後運行一下就會出現開始菜單了:

1361510937_9256.png


運行以後你會發現點擊開始遊戲沒有反應,那就對了,尚未添加響應事件呢。

這個魔塔遊戲以前使用cocos2d-iphone 1.0作的,有些用cocos2d-iphone 2.0作

的同窗就暈了這第一部分的爲啥跟個人不同呢,今天呢我就說一下如何用2.0

作這個遊戲,只有第一部分的不同,後面的部分不變。

   其實,這裏一樣是先把HelloWorldLayer刪除掉而後添加Scenemanager和

Menu兩個文件,Menu部分代碼不變。

Scenemanager.h代碼:


#import <GameKit/GameKit.h>

#import "cocos2d.h"

@interface Scenemanager : CCLayer <GKAchievementViewControllerDelegate, GKLeaderboardViewControllerDelegate>

{

}

+(CCScene *) goMenu;

+(CCScene*) goPlay;

@end


Scenemanager.m代碼:


[html] view plaincopy


  1. #import "Scenemanager.h"  
  2. #import "AppDelegate.h"  
  3. #import "Menu.h"  
  4.   
  5. #pragma mark - HelloWorldLayer  
  6.   
  7. @implementation Scenemanager  
  8. +(CCScene *) goMenu  
  9. {  
  10.     CCScene *scene = [CCScene node];  
  11.     Menu *layer = [Menu node];  
  12.     [scene addChild: layer];  
  13.     return scene;  
  14. }  
  15. +(CCScene*)goPlay  
  16. {  
  17. }  
  18. - (void) dealloc  
  19. {  
  20.     [super dealloc];  
  21. }  
  22.   
  23. #pragma mark GameKit delegate  
  24.   
  25. -(void) achievementViewControllerDidFinish:(GKAchievementViewController *)viewController  
  26. {  
  27.     AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];  
  28.     [[app navController] dismissModalViewControllerAnimated:YES];  
  29. }  
  30.   
  31. -(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController  
  32. {  
  33.     AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];  
  34.     [[app navController] dismissModalViewControllerAnimated:YES];  
  35. }  
  36. @end  


接下來把IntroLayer中的「HelloWorldLayer」換成"Scenemanager",而後在把


1361863864_4811.png

改爲1361863921_5393.png

就行了,以後按照教程寫就行了


下一篇咱們在開始正式的開始遊戲部分教程。

相關文章
相關標籤/搜索