你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS_31_cocos2d環境搭建

iOS_31_cocos2d環境搭建

編輯:IOS開發綜合

最終效果圖如:

\



<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+MS6000dpdMnPz8LU2CBjb2NvczJktcTRucv1sPwstPO4xTEwME08L3A+CjxwPjxpbWcgc3JjPQ=="/uploadfile/Collfiles/20140906/2014090608350613.png" alt="\">

2.解壓後,進入cocos2d主目錄,復制路徑到終端

3.執行./install.sh開始安裝(實質是拷貝至XCode目錄)

\


\



安裝前XCode,新建項目時界面如下

\


安裝後XCode,新建項目時界面如下


\


建好的工程目錄結構如下


\


直接運行程序,效果如下:

\


應用代理



//
//  AppDelegate.h
//  31_cocos2D入門
//
//  Created by beyond on 14-9-5.
//  Copyright com.beyond 2014年. All rights reserved.

//  AppDelegate 繼承自 CCAppDelegate
/*
    CCAppDelegate 繼承自NSObect,遵守協議:
    CCAppDelegate 擁有成員:UIWindow *window_
 
 *  大多 Cocos2d 應用 應該重寫 CCAppDelegate, CCAppDelegate作為應用的程序入口.
    至少應該復寫 startScene 方法,以便 返回應用要展示的首個場景
    如果想更進一步定制 Cocos2d(例如自定義顯示的像素模式), 
    請復寫 applicaton:didFinishLaunchingWithOptions: 方法
 */


#import "cocos2d.h"

@interface AppDelegate : CCAppDelegate
@end


//
//  AppDelegate.m
//  31_cocos2D入門
//
//  Created by beyond on 14-9-5.
//  Copyright com.beyond 2014年. All rights reserved.
//  AppDelegate 繼承自 CCAppDelegate
/*
 CCAppDelegate 繼承自NSObect,遵守協議:
 CCAppDelegate 擁有成員:UIWindow *window_
 
 *  大多 Cocos2d 應用 應該重寫 CCAppDelegate, CCAppDelegate作為應用的程序入口.
 至少應該復寫 startScene 方法,以便 返回應用要展示的首個場景
 如果想更進一步定制 Cocos2d(例如自定義顯示的像素模式),
 請復寫 applicaton:didFinishLaunchingWithOptions: 方法
 */


#import "AppDelegate.h"
#import "IntroScene.h"
#import "HelloWorldScene.h"

@implementation AppDelegate

// 
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
	// 當繼承自CCAppDelegate,唯一要實現的方法就是這一個方法,應用首次啟動就會第一個執行本方法
	
	// 在這兒,可以設置 Cocos2D 各參數的默認值
	// There are a number of simple options you can change.
	// 如果你還嫌調用setupCocos2dWithOptions方法,不夠靈活自由,那麼你可以自己頂置 Cocos2D
	[self setupCocos2dWithOptions:@{
		// 顯示 FPS
		CCSetupShowDebugStats: @(YES),
		
        // 使用降低了的幀率
        // CCSetupAnimationInterval: @(1.0/30.0),
        // 使用一個加快的幀率
        //		CCSetupFixedUpdateInterval: @(1.0/180.0),
        
        // 設置屏幕為豎屏模式
        //		CCSetupScreenOrientation: CCScreenOrientationPortrait,
        
        // 使用16位顏色:
        //		CCSetupPixelFormat: kEAGLColorFormatRGB565,
		// 使用一個統一的固定的坐標系統
        //		CCSetupScreenMode: CCScreenModeFixed,
		// Make iPad's act like they run at a 2x content scale. (iPad retina 4x)
        //		CCSetupTabletScale2X: @(YES),
		      
        // 更多內容請參閱 CCAppDelegate.h
	}];
	
	return YES;
}

-(CCScene *)startScene
{
	// 本方法返回應用啟動時,第一個要展示的場景
	return [IntroScene scene];
}

@end


場景一

//
//  IntroScene.h
//  31_cocos2D入門
//
//  Created by beyond on 14-9-5.
//  Copyright com.beyond 2014年. All rights reserved.
//

// Importing cocos2d.h and cocos2d-ui.h, will import anything you need to start using cocos2d-v3
#import "cocos2d.h"
#import "cocos2d-ui.h"

/**
 *  The intro scene
 *  Note, that scenes should now be based on CCScene, and not CCLayer, as previous versions
 *  Main usage for CCLayer now, is to make colored backgrounds (rectangles)
 *
 */
@interface IntroScene : CCScene

+ (IntroScene *)scene;
- (id)init;
@end



//
//  IntroScene.m
//  31_cocos2D入門
//
//  Created by beyond on 14-9-5.
//  Copyright com.beyond 2014年. All rights reserved.
//

#import "IntroScene.h"
#import "HelloWorldScene.h"



@implementation IntroScene


#pragma mark - 生命周期


+ (IntroScene *)scene
{
	return [[self alloc] init];
}



- (id)init
{
    
    self = [super init];
    if (!self) return(nil);
    
    // 創建背景顏色為深灰色
    CCNodeColor *background = [CCNodeColor nodeWithColor:[CCColor colorWithRed:0.2f green:0.2f blue:0.2f alpha:1.0f]];
    [self addChild:background];
    
    // 創建文字標簽
    CCLabelTTF *label = [CCLabelTTF labelWithString:@"Hello Beyond" fontName:@"Chalkduster" fontSize:36.0f];
    label.positionType = CCPositionTypeNormalized;
    label.color = [CCColor redColor];
    // 屏幕的正中間 注意這裡是笛卡爾坐標系,原點在左下方
    label.position = ccp(0.5f, 0.5f);
    [self addChild:label];
    
    // 創建一個開始按鈕,點擊後進入下一個場景
    CCButton *helloWorldButton = [CCButton buttonWithTitle:@"[ Start ]" fontName:@"Verdana-Bold" fontSize:18.0f];
    helloWorldButton.positionType = CCPositionTypeNormalized;
     // 屏幕的中間靠下方  注意這裡是笛卡爾坐標系,原點在左下方
    helloWorldButton.position = ccp(0.5f, 0.35f);
     // 監聽點擊事件
    [helloWorldButton setTarget:self selector:@selector(onSpinningClicked:)];
    [self addChild:helloWorldButton];

    // 返回創建好的場景對象
	return self;
}


#pragma mark - 按鈕點擊事件,切換至下一場景


- (void)onSpinningClicked:(id)sender
{
    // 動畫切換至下一個場景
    [[CCDirector sharedDirector] replaceScene:[HelloWorldScene scene]
                               withTransition:[CCTransition transitionPushWithDirection:CCTransitionDirectionLeft duration:1.0f]];
}


@end


場景二
//
//  HelloWorldScene.h
//  31_cocos2D入門
//
//  Created by beyond on 14-9-5.
//  Copyright com.beyond 2014年. All rights reserved.
//

// Importing cocos2d.h and cocos2d-ui.h, will import anything you need to start using Cocos2D v3
#import "cocos2d.h"
#import "cocos2d-ui.h"

/**
 *  主場景
 */
@interface HelloWorldScene : CCScene

+ (HelloWorldScene *)scene;
- (id)init;

@end


//
//  HelloWorldScene.m
//  31_cocos2D入門
//
//  Created by beyond on 14-9-5.
//  Copyright com.beyond 2014年. All rights reserved.
//

#import "HelloWorldScene.h"
#import "IntroScene.h"

@implementation HelloWorldScene
{
    CCSprite *_sprite;
}

#pragma mark - 生命周期
+ (HelloWorldScene *)scene
{
    return [[self alloc] init];
}


- (id)init
{
    
    
    if (!(self = [super init]) ) return(nil);
    
    // 場景模式下 允許交互
    self.userInteractionEnabled = YES;
    
    // 創建背景顏色為深灰色
    CCNodeColor *background = [CCNodeColor nodeWithColor:[CCColor colorWithRed:0.2f green:0.2f blue:0.2f alpha:1.0f]];
    [self addChild:background];
    
    // 添加一個精靈,並設置位置居中
    _sprite = [CCSprite spriteWithImageNamed:@"ColorCircle.png"];
    
    _sprite.position  = ccp(self.contentSize.width/2,self.contentSize.height/2);
    [self addChild:_sprite];
    
    // 為精靈創建一個旋轉動作,並且調用精靈的runAction方法,重復執行動作
    CCActionRotateBy* actionSpin = [CCActionRotateBy actionWithDuration:1.5f angle:360];
    [_sprite runAction:[CCActionRepeatForever actionWithAction:actionSpin]];
    
    // 右上方,創建一個返回按鈕,點擊後,返回至上一個場景
    CCButton *backButton = [CCButton buttonWithTitle:@"[ Back ]" fontName:@"Verdana-Bold" fontSize:18.0f];
    backButton.positionType = CCPositionTypeNormalized;
    // 屏幕的右上方 注意這裡是笛卡爾坐標系,原點在左下方
    backButton.position = ccp(0.85f, 0.95f);
    // 監聽點擊事件
    [backButton setTarget:self selector:@selector(onBackClicked:)];
    [self addChild:backButton];
    
    // 返回創建好的場景對象
	return self;
}

- (void)dealloc
{
    // clean up code goes here
}

#pragma mark - Enter & Exit
// -----------------------------------------------------------------------

- (void)onEnter
{
    // 必須總是先調用父類的onEnter方法
    [super onEnter];
    
    // In pre-v3, touch enable and scheduleUpdate was called here
    // In v3, touch is enabled by setting userInteractionEnabled for the individual nodes
    // Per frame update is automatically enabled, if update is overridden
    
}

- (void)onExit
{
    // 必須總是 最後才調用父類的onExit方法
    [super onExit];
}

#pragma mark - 用戶觸摸屏幕,精靈跟隨手指移動

-(void) touchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
    CGPoint touchLoc = [touch locationInNode:self];
    
    // 輸出觸摸點的坐標
    CCLOG(@"Move sprite to @ %@",NSStringFromCGPoint(touchLoc));
    
    // 移動精靈到觸摸點處 To表示絕對  By表示相對
    CCActionMoveTo *actionMove = [CCActionMoveTo actionWithDuration:1.0f position:touchLoc];
    // 調用精靈的runAction方法執行動作
    [_sprite runAction:actionMove];
}

#pragma mark - 按鈕點擊事件

- (void)onBackClicked:(id)sender
{
    // 使用轉場動畫,切換場景至 IntroScene
    [[CCDirector sharedDirector] replaceScene:[IntroScene scene]
                               withTransition:[CCTransition transitionPushWithDirection:CCTransitionDirectionRight duration:1.0f]];
}
@end










  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved