`

cocos2d 总结:一

阅读更多

1:在创建CCLayer的子类时,默认的情况下,不能响应触摸事件

-(id)init {  }打开事件处理:

    // enable touch input

       self.isTouchEnabled = YES;

      

       // enable accelerometer input

       self.isAccelerometerEnabled = YES;

 

 

-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

}

 

-(void) ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

{

     

}

 

-(void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

{

 

}

 

-(void) ccTouchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event

{

   

}

 

// Accelerometer Input Events

-(void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration

{

    CCLOG(@"acceleration: x:%f / y:%f / z:%f", acceleration.x, acceleration.y, acceleration.z);

}

 

2:放大缩小一个CCSprite* 对象

   //屏幕的大小

    CGSize size = [[CCDirector sharedDirector] winSize];

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

       background.position = CGPointMake(size.width / 2, size.height / 2);

       // scaling the image beyond recognition here

       background.scaleX = 30;

       background.scaleY = 3;

       [self addChild:background];

 

3:创建一个CCLabel对象

    // creating another label and aligning it at the top-right corner of the screen

       CCLabel* labelAligned = [CCLabel labelWithString:@"I'm topright aligned!" fontName:@"HiraKakuProN-W3" fontSize:20];

       labelAligned.position = CGPointMake(size.width, size.height);

       labelAligned.anchorPoint = CGPointMake(1, 1);

       [self addChild:labelAligned];

4:制定定时任务

// this will have the -(void) update:(ccTime)delta method called every frame

       //[self scheduleUpdate];  //相当于[self schedule:@selector(update:) interval:0.0];

       [self schedule:@selector(update:) interval:0.1f];

 

-(void) update:(ccTime)delta

{

    // called every frame thanks to [self scheduleUpdate]

   

    // unschedule this method (_cmd is a shortcut and stands for the current method) so it won't be called anymore

//取消定时任务

    [self unschedule:_cmd];// :_cmd:是个什么对象呢???

   

    CCLOG(@"update with delta time: %f", delta);

   

    // re-schedule update randomly within the next 10 seconds

    float nextUpdate = CCRANDOM_0_1() * 10;  // CCRANDOM_0_1():取得0-1之间的随机数

    [self schedule:_cmd interval:nextUpdate];

}

 

5:坐标转换——-将UIView中的点击坐标转换为OpenGl的坐标

 

-(CGPoint) locationFromTouches:(NSSet *)touches

{

    UITouch *touch = [touches anyObject];

    CGPoint touchLocation = [touch locationInView: [touch view]];

    return [[CCDirector sharedDirector] convertToGL:touchLocation];

}

 

6:特效场景转换

 

   CCScene* scene = [MenuScene scene];

   

//创建特效

    CCFadeTransition* transitionScene = [CCFadeTransition transitionWithDuration:3 scene:scene withColor:ccRED];

    CCFadeTRTransition* transitionScene = [CCFadeTRTransition transitionWithDuration:3 scene:scene];

    CCRotoZoomTransition* transitionScene = [CCRotoZoomTransition transitionWithDuration:3 scene:scene];

    CCShrinkGrowTransition* transitionScene = [CCShrinkGrowTransition transitionWithDuration:3 scene:scene];

    CCTurnOffTilesTransition* transitionScene = [CCTurnOffTilesTransition transitionWithDuration:3 scene:scene];

 

//导演对象转换场景

[[CCDirector sharedDirector] replaceScene:transitionScene];

 

7:创建菜单

 

-(void) createMenu:(ccTime)delta

{

    // unschedule the selector, we only want this method to be called once

    [self unschedule:_cmd];

   

    CGSize size = [[CCDirector sharedDirector] winSize];

   

    // set CCMenuItemFont default properties

    [CCMenuItemFont setFontName:@"Helvetica-BoldOblique"];//设置字体

    [CCMenuItemFont setFontSize:40];//设置大小

   

    // create a few labels with text and selector

    CCMenuItemFont* item1 = [CCMenuItemFont itemFromString:@"Go Back!" target:self selector:@selector(menuItem1Touched:)];

   

    // create a menu item using existing sprites

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

    normal.color = ccRED;

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

    selected.color = ccGREEN;

    CCMenuItemSprite* item2 = [CCMenuItemSprite itemFromNormalSprite:normal selectedSprite:selected target:self selector:@selector(menuItem2Touched:)];

   

    // create a toggle item using two other menu items (toggle works with images, too)

    [CCMenuItemFont setFontName:@"STHeitiJ-Light"];

    [CCMenuItemFont setFontSize:40];

    CCMenuItemFont* toggleOn = [CCMenuItemFont itemFromString:@"I'm ON!"];

    CCMenuItemFont* toggleOff = [CCMenuItemFont itemFromString:@"I'm OFF!"];

    CCMenuItemToggle* item3 = [CCMenuItemToggle itemWithTarget:self selector:@selector(menuItem3Touched:) items:toggleOn, toggleOff, nil];

   

    // create the menu using the items

    CCMenu* menu = [font-size: 10pt; color: #3f6e74; font-family: Mona

分享到:
评论

相关推荐

    cocos2d 总结:二scenes and layers

    【标题】:“Cocos2d总结:二、场景(Scenes)与图层(Layers)” 在游戏开发中,Cocos2d是一个广泛使用的2D游戏引擎,它为开发者提供了丰富的功能和简单易用的API。本文将深入探讨Cocos2d中的两个核心概念:场景...

    cocos2d 总结:三 CCSprite

    在游戏开发领域,Cocos2d是一个广泛使用的2D游戏引擎,它为开发者提供了丰富的功能和易用的API,使得创建交互式游戏变得简单。这篇博客文章将深入探讨Cocos2d中的关键组件——CCSprite,它是构建游戏图形的基础元素...

    cocos2d 总结:四 背景的循环移动

    总结,Cocos2d中的背景循环移动涉及到精灵的创建、位置调整以及定时器的使用。通过巧妙地结合这些基本元素,可以创造出各种动态的背景效果,提升游戏的视觉体验。对于开发者来说,熟练掌握这些技巧是构建高品质2D...

    cocos2d-xTest

    总结来说,cocos2d-xTest项目包含了一个处理触摸事件的简单示例,以及一个用于应用程序安全性的检查机制,特别是针对Android平台的dex文件校验。这些功能对于游戏开发至关重要,它们确保了用户界面的响应性,并且...

    Cocos2d-x 地图行走的实现2

    总结来说,"Cocos2d-x 地图行走的实现2"这个主题涵盖了从地图加载、角色定位、碰撞检测、动画制作到用户输入响应等一系列游戏开发的核心技术。通过理解并实践这些知识点,开发者能够创建出具有生动地图和角色互动的...

    Cocos2d-x 自定义可接受处理触摸信息精灵类

    总结来说,这个例子展示了如何在Cocos2d-x中自定义精灵类来处理触摸事件。通过继承`CCSprite`并实现触摸事件回调函数,我们可以让精灵根据触摸状态执行不同的动作。同时,通过创建场景并设置触摸监听,我们确保了...

    cocos2d-x TableView 分析

    Cocos2d-x TableView 分析是游戏开发中经常遇到的问题之一。TableView 是一个常用的 UI 组件,用于显示大量数据,但是它的使用也存在一些问题。下面我们将对 TableView 的使用进行分析,并总结出一些重要的知识点。 ...

    cocos2d-touch事件

    总结起来,Cocos2d-x的触摸事件机制使开发者能够轻松响应用户的触摸操作,结合ccLayer的使用,可以创建出丰富的用户交互体验。通过理解和应用这些概念,你可以构建出更加动态和有趣的2D游戏。在实际开发过程中,不断...

    别踩白块游戏cocos2d-x3.x实现

    总结来说,通过Cocos2d-x 3.x,我们可以利用其丰富的图形渲染、事件处理和跨平台能力,实现《别踩白块》这样一款简单却富有挑战性的游戏。在开发过程中,理解Cocos2d-x的核心组件,合理设计游戏逻辑和用户交互,以及...

    cocos2d-x面试题总结

    "cocos2d-x面试题总结" 本篇总结了cocos2d-x面试的常见问题,涵盖了C++基础知识、cocos2d-x特性和实现机理等方面。下面是根据给定的文件信息生成的相关知识点: 一、C++基础知识 1. C和C++的区别:C++在C的基础上...

    cocos2dx 精灵触摸事件的实现

    总结一下,Cocos2d-x中为精灵实现触摸事件涉及以下步骤: 1. 创建自定义精灵类,继承自`cc::Sprite`。 2. 重写`onTouchBegan`、`onTouchMoved`和`onTouchEnded`方法。 3. 在场景中设置事件监听器,并将精灵作为目标...

    cocos2d-x-2.1.4.rar

    1. 跨平台性:cocos2d-x 支持iOS、Android、Windows Phone等多平台,开发者只需要编写一次代码,就能在多个平台上运行,极大地提高了开发效率。 2. C++ 基础:cocos2d-x 使用C++作为主要编程语言,同时提供了Python...

    Cocos2D-X2.2.3学习笔记7(事件队列之触屏事件

    总结,理解和掌握Cocos2D-X中的事件队列及触屏事件处理对于开发一款成功的移动平台游戏至关重要。通过合理地添加事件监听器、处理不同类型的触屏事件,以及优化事件处理优先级,可以构建出响应迅速、用户体验良好的...

    cocos2d-x 跑酷源码

    总结,通过深入研究"runningGame"的源码,我们可以了解到cocos2d-x在跑酷游戏开发中的应用,掌握从资源管理到游戏逻辑实现的全过程。这对于开发者来说,既是一次实践操作的锻炼,也是一次理论知识的巩固,对于后续的...

    Cocos2d-JS中使用Cocos Studio资源02:登录界面

    1. **Cocos2d-JS简介** Cocos2d-JS是Cocos2d-x框架的JavaScript版本,它提供了一个跨平台的游戏开发环境,支持Windows、iOS、Android等多个平台。Cocos2d-JS允许开发者使用JavaScript编写代码,同时享受到C++的高...

    cocos2d3D扑克翻牌特效

    总结,通过cocos2d-lua和OpenGL的结合,我们可以轻松创建出引人入胜的3D扑克翻牌特效。从建模到动画,再到交互设计,每一个步骤都需要细心打磨,才能打造出既美观又流畅的游戏体验。在实际开发中,开发者应不断学习...

    cocos2d-x-3.13.1.zip

    总结,cocos2d-x 3.13.1是一个强大且成熟的2D游戏开发框架,不仅提供了丰富的功能,还持续优化以适应不断变化的技术环境。对于有志于游戏开发的程序员来说,熟练掌握cocos2d-x将为他们的职业生涯开启新的可能。

Global site tag (gtag.js) - Google Analytics