Cocos2d-iPhone V3 (1) 其基本程序常用的行动框架和介绍

  • 博客:http://blog.csdn.net/prevention
  • 笔者:犀利哥

-

第一部分:一个 Cocos2d-iPhone V3 的基本框架

1. AppDelegate

首先看AppDelegate.h,类是继承自CCAppDeleagate,其它没什么特别的:

#import "cocos2d.h"
@interface AppDelegate : CCAppDelegate
@end

再看AppDelegate.m,仅仅要实现两个函数就可以,注意当中实现startScene就能够载入你自己定义的场景啦,简单吧:

#import "AppDelegate.h"
#import "MainScene.h" @implementation AppDelegate -(BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self setupCocos2dWithOptions:@{
CCSetupShowDebugStats: @(YES),
}];
return YES;
} - (CCScene *)startScene
{
return [HomeScene scene];
}

2. 你自己的场景类 MainScene

先看看MainScene.h,我们看有两个方法。一个是静态方法scene,一个是类方法init

#import "cocos2d.h"
#import "cocos2d-ui.h" @interface MainScene : CCScene + (MainScene *)scene;
- (id)init; @end

再看看MainScene.m,这里头东西就多了。首先看总体结构:

#import "MainScene.h"

@implementation MainScene
{
CCSprite *_sprite;
} + (MainScene *)scene { /* ... */ }
- (id)init { /* ... */ }
- (void)dealloc { /* ... */ }
- (void)onEnter { /* ... */ }
- (void)onExit { /* ... */ }
- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event { /* ... */ } @end

必需要有一个静态方法返回一个自己定义的场景实例scene方法。还要有onEnteronExit表示进入/离开该场景就会调用。touchBegan是一个 Touch Handler。

2.1. 静态方法 scene

没什么好说的:

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

2.2. init

- (id)init
{
// Apple recommend assigning self with supers return value
self = [super init];
if (!self) return(nil); // Enable touch handling on scene node
self.userInteractionEnabled = YES; // Create a colored background (Dark Grey)
CCNodeColor *background =
[CCNodeColor nodeWithColor:[CCColor colorWithRed:0.2f
green:0.2f
blue:0.2f
alpha:1.0f]];
[self addChild:background]; // Add a sprite
_sprite = [CCSprite spriteWithImageNamed:@"Icon-72.png"];
_sprite.position = ccp(self.contentSize.width/2,self.contentSize.height/2);
[self addChild:_sprite]; // Animate sprite with action
CCActionRotateBy* actionSpin = [CCActionRotateBy actionWithDuration:1.5f angle:360];
[_sprite runAction:[CCActionRepeatForever actionWithAction:actionSpin]]; // done
return self;
}
  • 调用superinit
  • 设置userInteractionEnabledYES来接收触摸事件
  • 加入背景节点,这里用的是CCNodeColor
  • 加入精灵节点CCSprite
  • 给精灵节点加入动作CCActionRotateBy
  • 返回self

2.3. 进入场景 Handler:onEnter

一定要记得调用superonEnter

- (void)onEnter
{
[super onEnter];
}

2.4. 离开场景 Handler:onExit

一定要记得调用superonExit

- (void)onExit
{
[super onExit];
}

2.5. Touch Handler

- (void) touchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
CGPoint touchLoc = [touch locationInNode:self];
CCActionMoveTo *actionMove =
[CCActionMoveTo actionWithDuration:1.0f position:touchLoc];
[_sprite runAction:actionMove];
}
  • 首先依据传入的UITouch參数来获取被触摸位置CGPoint
  • 依据获取到的位置设定CCAction,最后执行这个CCAction

第二部分:动作

1. 位移一段距离CCActionMoveBy

+ (id)actionWithDuration:(CCTime)duration position:(CGPoint)deltaPosition;

2. 位移到CCActionMoveTo

+ (id)actionWithDuration:(CCTime)duration position:(CGPoint)position;

3. 旋转一个角度CCActionRotateBy

注意当中的 angle 是角度(一周 360 度),不是弧度(一周 2π):

+ (id)actionWithDuration:(CCTime)duration angle:(float)deltaAngle;

4. 旋转到CCActionRotateTo

注意当中的 angle 是角度(一周 360 度),不是弧度(一周 2π):

+ (id)actionWithDuration:(CCTime)duration angle:(float)angle;

5. 渐变出现CCActionFadeIn

This action fades in the target, it modifies the opacity from 0 to 1.

+ (id)actionWithDuration:(CCTime)d;

6. 渐变消失CCActionFadeOut

This action fades out the target, it modifies the opacity from 1 to 0.

+ (id)actionWithDuration:(CCTime)d;

7. 渐变到CCActionFadeTo

你可能会注意到 Cocos2d 的源代码里有拼写错误。opacity写成了opactiyCCActionInterval.h中):

/**
* Creates a fade action.
*
* @param duration Action duration.
* @param opactiy Opacity to fade to.
*
* @return New fade action.
*/
+ (id)actionWithDuration:(CCTime)duration opacity:(CGFloat)opactiy;

-

转载请注明来自:http://blog.csdn.net/prevention

版权声明:本文博主原创文章。博客,未经同意不得转载。

Cocos2d-iPhone V3 (1) 其基本程序常用的行动框架和介绍的更多相关文章

  1. 移动端、PC端(前后台)、小程序常用的UI框架

    1.移动端UI库 ①.Vant UI 官方地址:https://youzan.github.io/vant/#/zh-CN/intro github地址:https://github.com/youz ...

  2. Cocos2d-x v3.1 Hello world程序(四)

    Cocos2d-x v3.1 Hello world程序(四) 在上一篇文章中我们我们已经使用Cocos-Console工具生成了工程,本机生成的目录为:"D:\CocosProject\T ...

  3. iPhone 真机调试应用程序

    原文:http://blog.sina.com.cn/s/blog_68e753f70100r3w5.html 真机调试iphone应用程序 1.真机调试流程概述 1)       真机调试应用程序, ...

  4. 小程序常用API介绍

    小程序常用API接口  wx.request https网络请求 wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 method:"GET&qu ...

  5. 微信小程序常用样式汇总

    本文系转载: 原文作者:chenzheng8975 原文地址:https://www.cnblogs.com/chenzheng8975/p/9605186.html 微信小程序常用样式汇总 小程序特 ...

  6. iOS开发-常用第三方开源框架介绍

    iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser        实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...

  7. 常用的CSS框架

    常用的CSS框架 之前在写自己的个人网站的时候,由于自己Web前端不是特别好,于是就去找相关的CSS框架来搭建页面了. 找到以下这么一篇文章(列出了很多常用的CSS框架): http://w3scho ...

  8. 像VUE一样写微信小程序-深入研究wepy框架

    像VUE一样写微信小程序-深入研究wepy框架 微信小程序自发布到如今已经有半年多的时间了,凭借微信平台的强大影响力,越来越多企业加入小程序开发. 小程序于M页比相比,有以下优势: 1.小程序拥有更多 ...

  9. Linux运维常用的几个命令介绍【转】

    Linux运维常用的几个命令介绍 1. 查看系统内核版本​ [root@funsion geekxa]# cat /etc/issue CentOS release 6.5 (Final) Kerne ...

随机推荐

  1. 使用Google Roads API抓取道路信息(java实现)

    Google Roads API提供了强大的道路获取接口,用户仅仅需调用对应的API就能够获取对应区域的道路坐标以及道路的限速信息. 详细的调用方法例如以下: https://roads.google ...

  2. deinstall oracle 11g on linux

    deinstall oracle 11g on linux   From 11gR2, oracle provide us an deinstall tool. With that now we ca ...

  3. Blob API及问题记录

    接上一篇<js创建下载文件>, 记录核心部分 Blob 的API, >>传送门 , 同时说下使用过程中碰到的一个问题. 先说问题: 用Blob创建后缀为.sql的文件, 内容是 ...

  4. JSP简单介绍

    前言 知识点 1.JSP是什么   java  server   page,javaserver端页面技术.其主要作用在server端动态生成页面, 其组成java代码和html, 2.JSP的组成 ...

  5. 用JavaScript实现网页动态水印

    1.基本原理 页面加载后,通过javascript创建页面元素div,并在div元素中创建文本节点,展示水印内容 设置div元素样式,将其zIndex设置一个较高的值,并设置透明度,实现浮在页面的水印 ...

  6. Oracle SQL Lesson (3) - 使用单行函数自定义输出

    大小写转换函数LOWER('SQL Course') = sql courseUPPER('SQL Course') = SQL COURSEINITCAP('SQL Course') = Sql C ...

  7. Add/Remove listview web part in publish site via powershell

    1. Here is the code: Add WebPart in Publish Site Example : AddWebPartPublish http://localhost  " ...

  8. HTML5 Canvas鼠标与键盘事件

    演示HTML5 Canvas鼠标事件,获取Canvas对象上的鼠标坐标,演示键盘事件 通过键盘控制Canvas上对象移动. Canvas对象支持所有的JavaScript的鼠标事件,包括鼠标点击(Mo ...

  9. 朴素UNIX它-Linux CFS注视

    该系列产品,被称为纯UNIX,但它也包含各种类别UNIX该系统的细节,自从完成我多年的学习笔记本系列文章,分析了各种UNIX,类UNIX思想和情感的实现. 这篇文章是比较短.只是分析Linux CFS ...

  10. jquery的attr禁用表单元素的方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...