存档

2013年11月 的存档

sprite常用操作

2013年11月29日 没有评论

 

1,锚点

锚点就是所有旋转,移动,缩放的参考点。cocos2-x中默认的锚点是中心点。锚点用比例来表示范围为0-1,(0,0)点代表左下点,(1,1)代表右上点。设置的函数为setAnchorPoint(ccp(0.5, 0.5));

2,旋转

setRotation(angle) 其中angle为角度不是弧度。正数为顺时针旋转,负数为逆时针旋转。

3,位置

setPosition(ccp(xPos, yPos)) xPos和yPos为相对于父节点锚点的位置。

4,缩放

setScale(s);   // 整体缩放

setScaleX(s); // 原图片坐标X轴缩放

setScaleY(s); // 原图片坐标Y轴缩放

s为比例,s = 1表示原尺寸。

5,倾斜

setSkewX(s); // 原图片坐标X轴倾斜

setSkewY(s); // 原图片坐标Y轴倾斜

X轴向右为正,Y轴向上为正。

6,透明度

setOpacity(s);

s范围0-255,0完全透明,255完全不透明。

7,可见

setIsVisible(bVisible)

bVisible为bool值true代表可见false代表不可见

8,翻转

setFlipX(bFlip);  // 水平翻转

setFlipY(bFlip);  // 竖直翻转

 

分类: cocos2d 标签:

cc.RepeatForever和cc.Spawn冲突

2013年11月28日 没有评论

正确

            var tmpShip3 = cc.Sprite.createWithSpriteFrameName("w1_1.png");
            tmpShip3.setPosition(250,180);
            this.addChild(tmpShip3);

            var animFrames3 = []; //      将所有帧存入一个数组
            for (var i=1;i<=4;i++) {
                //采用循环添加动画的每一帧
                var strPngName3 = "w1_" + i + ".png";
                var frame3 =cc.SpriteFrameCache.getInstance().getSpriteFrame(strPngName3);
                if (frame3) {
                    animFrames3.push(frame3);
                }
            }
            var animation3 = cc.Animation.create(animFrames3, 0.01);
            tmpShip3.runAction(cc.RepeatForever.create(cc.Animate.create(animation3)));
            tmpShip3.runAction(cc.MoveTo.create(3, cc.p(250 ,winSize.height)));

 

 

无效

tmpShip3.runAction(
                cc.Spawn.create(
                    cc.RepeatForever(cc.Animate.create(animation3)),
                    cc.MoveTo.create(3, cc.p(250 ,winSize.height))
                )
            );

有效,只动一次

tmpShip3.runAction(
                cc.Spawn.create(
                    cc.Animate.create(animation3),
                    cc.MoveTo.create(3, cc.p(250 ,winSize.height))
                )
            );

 

分类: cocos2d 标签:

Cocos2d-x 3.0开发(十三)使用CocoStudio编辑帧事件并关联到程序

2013年11月27日 没有评论

1、概述

    帧事件也是新加入的功能。这篇中我们将看到如何使用它。我们将上篇中制作的动画稍加修改。有图为证:


Cocos2d-x 3.0开发(十三)使用CocoStudio编辑帧事件并关联到程序

2、用途与原理

    首先介绍一下帧事件。正如其名:一个与帧相关联的事件。

    为什么要这么做呢?首先没人想做一大堆碎动画,然后一点一点拼着播放吧。另外,有时候流程与事件控制最好关联到帧。比如一个攻击动作,有出刀和收刀两部分。伤害自然是在刀所触到敌人时候产生的。做成两个动画比较麻烦,程序要管理大量的动画,而且美工也会很郁闷:不但给你们切图,还要给你们切动画。如果用固定时间来做,也是会有问题。比如机器卡了,帧数就会下降。这个时候,时间就不准确了。用帧事件的方式就会比较好,到了“触刀”那帧,就会有事件,能较好的处理这种情况。

 

    它的原理是监听。当运行到事件所在的帧时,会触发回调。我们要做的就是在回调函数中操作,判断这一帧是不是我们想要的,标记的方式是Tag字符串。

 

3、设置帧事件

    打开项目,运行动画编辑器,切换到动画模式。

    将时间轴拖动到相应帧处,选择一个对象,这里我选择的是左手。然后在它的属性中设置帧事件。

Cocos2d-x 3.0开发(十三)使用CocoStudio编辑帧事件并关联到程序


4、创建新工程

    运行脚本创建testFrameEvt,编译运行确保原始工程正确。

    将CocoStudio导出的资源复制到Resource目录下。

   然后配置CocoStudio导出文件的依赖路径和库。可参照:Cocos2d-x 3.0 开发(十一)3.0 alpha1文件结构变化 。

5、载入动画


    更改init:


bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();

	ArmatureDataManager::getInstance()->addArmatureFileInfo("changeShape.ExportJson");
	Armature* arm =Armature::create("changeShape");
	arm->getAnimation()->play("frameSingle");
    arm->getAnimation()->setSpeedScale(0.5);
	arm->setPosition(Point(visibleSize.width/2,visibleSize.height/2));

	this->addChild(arm);
    return true;
}

    运行,可见动画播放。

6、监听帧事件


    在类中添加一个函数:

void onFrameEvent(Bone *bone, const string& evt, int originFrameIndex, int currentFrameIndex);

    并在cpp中实现:

void HelloWorld::onFrameEvent(Bone *bone, const string& evt, int originFrameIndex, int currentFrameIndex)
{
    if(strcmp(evt,"110") == 0)
    {
        ActionInterval *action =  ShatteredTiles3D::create(0.8f, Size(30,30), 5, false); 
        this->runAction(action);
    }
}

    可以看出,事件是由一个字符串来标记的。

    最后在init中注册:

arm->getAnimation()->setFrameEventCallFunc(this,frameEvent_selector(HelloWorld::onFrameEvent));

    帧事件我们用了一个效果来表现,所以还要恢复Grid,这里我们加入一个schedule函数。当然,这里也可以用帧事件来标记恢复点。

//声明
	void checkAction(float dt);

//实现
    void HelloWorld::checkAction(float dt)
{
    if ( this->getNumberOfRunningActions() == 0 && this->getGrid() != nullptr)
        this->setGrid(nullptr);
}
//注册
schedule( schedule_selector(HelloWorld::checkAction) );

    编译运行,就能看到效果了。

 

7、总结

    通过在cocoStudio中设置Tag的方式来标记帧事件,在程序中设置回调。然后根据tag名来判断是否是需要的帧事件。这里我有两个担心,首先是效率问题,不知当帧事件多的时候,监听运行起来效率如何。第二是当效率低自动抽帧时,会不会将事件帧抽掉,导致没有事件出现。但愿我的担心是多余的。

    Demo 下载:http://download.csdn.net/detail/fansongy/6621423


    本篇博客出自阿修罗道,转载请注明出处,不得用于商业用途:http://blog.csdn.net/fansongy/article/details/16991385 

 

 

分类: 未分类 标签:

Cocos2d-x 3.0 开发(十二)在CocoStudio中使用粒子挂载与曲线动画

2013年11月26日 没有评论

1、概述

    最新版本的CocoStudio在修复之前Bug的同时,加入了新功能,粒子挂载和曲线动画就是其中的亮点。下面我们就动手做个例子,先上图:

    Cocos2d-x 3.0 开发(十二)在CocoStudio中使用粒子挂载与曲线动画

 

2、粒子挂载

    运行CocoStudio中的AnimationEditor,来编辑动画,我就用之前的那个UI做的小人啦。

    在CocoStudio 1.1 中可以隐藏骨骼(Alt+G)

Cocos2d-x 3.0 开发(十二)在CocoStudio中使用粒子挂载与曲线动画

    在不需要骨骼显示的时候,关闭骨骼显示清爽了好多。接下来开始动手挂载粒子。

    我们要将找到粒子效果的plist加入到资源目录中。然后将其拖动到场景中即可。

Cocos2d-x 3.0 开发(十二)在CocoStudio中使用粒子挂载与曲线动画

    接下来就是绑定父骨骼了,和先前一样。如果不太清楚操作,可以参照: 

Cocos2d-x 3.0开发(六)使用cocoStudio创建一个骨骼动画

 

3、曲线动画

    真实世界中的运动通常都不是线性(Liner)的,而是“曲线”的。有快有慢有反弹,这样看起来才更真实。虽然这也属于动画的范畴,但是很通用,所以大家就把它们抽象出来了(似乎有面向对象的味道…)。这些运动细节的设置在CocoStudio 1.1中已经可以使用。

    接下来我们动手做。

    首先要制作一个动画。在帧上右击选择“缓动设置”,就能看到了,这里我们选择CircEaseIn:


Cocos2d-x 3.0 开发(十二)在CocoStudio中使用粒子挂载与曲线动画

 

   播放动画,就可以看到效果了。保存导出,和先前一样。


4、总结

    新版本的CocoStudio中可以挂载粒子,也可以设置缓动,极大的方便了我们对效果的调整。



本篇博客出自阿修罗道,转载请注明出处,禁止用于商业用途http://blog.csdn.net/fansongy/article/details/16970911 

分类: 未分类 标签:

【cocos2d-x 环境配置-Mac配置篇】

2013年11月26日 没有评论

目前我配置的环境需求如下:

JDK 1.6

XCode Version 4.6 (4H127)

Cocos2d-x 2.2.0 

Android Developer 

一,下载安装

要配置环境一次性下载准备要以下东西:

1,下载jdk,地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

2,下载ndk,地址:http://developer.android.com/tools/sdk/ndk/index.html

3, ADT + sdk ,地址:http://developer.android.com/sdk/index.html

4,下载最新的Cocos2dx,目前已经到了2.2版本了,地址:http://cocos2d-x.org/download 官网改动挺大;

ps:2.1.5以上的版本编译工程创建都有一些差距;

5,下载xcode,我的是老版本4.6不用升级,破解了无证书的,没必要直接老版本更新,可以直接去网上下载安装包;

ps:破解地址也给一个吧http://blog.csdn.net/abcddtt/article/details/9074099 对于没有证书或者真机调试新项目给别人看很有用的;

二,环境的配置安装

1,ios 的环境cocos2d-x2.2.0版本安装与升级

先安装好xcode,然后解压出cocos2d-x2.2的文件,从2.1.5以上后就没有模板的安装了,直接解压后用/Users/yangshengjie/cocos2dx.2.2/cocos2d-x-2.2/tools/project-creator目录下的create_project.py文件安装建工程

但是如果2.1.5之前的想升级cocos2dx2.2.0版本,进行如下操作:

(1)找以前旧版本的如cocos2d-x-2.1.4的install-templates-xcode.sh拷贝到2.2的目录下面

(2)再把/Users/yourmacname/cocos2dx.2.1.4/cocos2d-x-2.1.4/template/xcode4 整个文件夹复制到对应/cocos2dx.2.2.0/cocos2d-x-2.2.0/template/ 下面

(3)先获取mac的root权限,命令行执行 install-templates-xcode.sh -u-f ,看到installed就升级成功了,xocde新建工程看cocos2d.cpp就是2.2版本的了;

【cocos2d-x 环境配置-Mac配置篇】

2, android 环境安装配置,jdk,ndk,eclipse 下载完之后整理以下目录,然后开始配置mac下的环境变量

整理后的目录放在users根目录下:

【cocos2d-x 环境配置-Mac配置篇】

打开终端配置环境变量,输入以下命令:

vim ~/.bash_profile

按键i,进行插入编辑(如果输错d进行删除一行)

修改以下路径:

export PATH=$PATH:/Users/yourmacname/adtformac/sdk/tools

export PATH=$PATH:/Users/yourmacname/adtformac/sdk/platform-tools

export PATH=$PATH:/Users/yourmacname/android-ndk-r9b/

export ANDROID_NDK_ROOT=/Users/yourmacname/android-ndk-r9b/

export ANDROID_SDK_ROOT=/Users/yourmacname/adtformac/sdk

export NDK_ROOT=/Users/yourmacname/android-ndk-r9b/

复制进去

按esc,再命令输入命令:

:wq

3,创建一个新工程

终端打开路径 /Users/yangshengjie/cocos2dx.2.2/cocos2d-x-2.2/tools/project-creator 

用命令创建工程:

 ./create_project.py -project projectname -package com.xxx.xxxx -language cpp

替换自己的包名和工程名,回车如图示就算建立成功了

【cocos2d-x 环境配置-Mac配置篇】

你现在可以通过xcode打开你新建的项目工程了,工程目录在:

/Users/yangshengjie/cocos2dx.2.2/cocos2d-x-2.2/projects/mytest

双击文件夹proj.ios/mytest.xcodeproj就可以打开工程,直接run就可以跑起来;

ios端配置就完成了,很简单;

另外推荐大家一个小工具go2shell(路径命令终端快捷的工具拖到Finder工具栏上面,一键就可以定位打开这个路径的终端),这玩意儿图标也很萌…

 

【cocos2d-x 环境配置-Mac配置篇】

【cocos2d-x 环境配置-Mac配置篇】

4,配置android eclipse的环境

打开eclipse,-> import目录 /Users/yangshengjie/cocos2dx.2.2/cocos2d-x-2.2/cocos2dx/platform/android/java 

加载libcocos2d工程,因为新工程需要把他作为lib引用

(1),adt->设置->General->Workspace->Link Resources->new  对话框里面name填COCOS2DX,路径选择:/Users/yourmacname/cocos2dx.2.2/cocos2d-x-2.2 

如下图:

【cocos2d-x 环境配置-Mac配置篇】

ok

(2),adt->设置->Android->SDK location  选择你的sdk路径/Users/yourmacname/adtformac/sdk

如下图:

【cocos2d-x 环境配置-Mac配置篇】

默认的sdk自带了一个4.4的rom, APIlevel = 19 

ok

(3),adt->设置->Android->C/C++ ->Build->Environment   Add 一个ndk路径/Users/yourmacname/android-ndk-r9b

ok

(4),import刚才新建的工程/Users/yourmacname/cocos2dx.2.2/cocos2d-x-2.2/projects/mytest/proj.android

【cocos2d-x 环境配置-Mac配置篇】

ok,如果上面的步凑没什么问题,导入应该不会报错:

【cocos2d-x 环境配置-Mac配置篇】

ok,到这步没有报错的话,应该可以直接跑起来了,可以插上android真机调试以下看看如何;

点击run->你的工程项目在eclipse Consle里面可以看到如下图:

【cocos2d-x 环境配置-Mac配置篇】

我们已经成功通过ndk编译出.so文件,真机上就没问题了;

5,编写代码,进行跨平台交叉编译

以上我们已经成功完成了工程的创建以及ios,android平台都可以跑起来新建的项目了,事情还没完,我们新写了c++代码,怎么交叉编译呢?换句话说我们在win32,xcode,eclipse任何一个开发平台写了代码怎么同步到其他平台呢?

例:我在xcode写代码再同步到eclipse上去

【cocos2d-x 环境配置-Mac配置篇】

我打开了我之前xcode创建的工程,里面编写了一个BaseSoundControl.cpp文件,显然这个类是用来控制声音的,具体代码:

#include "BaseSoundControl.h"
#include "SimpleAudioEngine.h"

BaseSoundControl::BaseSoundControl(CCString* videourl,bool repetflag)
{
    
    CocosDenshion::SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(videourl->getCString());
    
    CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic(videourl->getCString(), repetflag);
    
}

用到了CocosDenshion,win32下面如果用到声音需要手动起添加,andriod新创建的工程也要去手动添加;

xcode ios 跑起来效果如下:

【cocos2d-x 环境配置-Mac配置篇】

先把写的代码copy到对应工程里面,复制的时候注意对应目录关系如下图,Classes和Resources对应里面的所有东西(c++代码和图片,和音频文件)都copy过来;

【cocos2d-x 环境配置-Mac配置篇】

 

然后F5刷新我们的android工程,就会看到mytest项目中classes文件夹同步上了我们写的c++代码;

【cocos2d-x 环境配置-Mac配置篇】

先别着急直接run,会报错,因为在android建工程没有cocos2d-x里面专处理声音跨平台的CocosDenshion库,手动添加它;

工程名->右键->new->folder

【cocos2d-x 环境配置-Mac配置篇】

Advanced ->link to~~~ ->Varivbels ->选择cocos2dx ->Extend->选择 CocosDendhion ok!如下图:

【cocos2d-x 环境配置-Mac配置篇】

最后filsh就有了这个库了;

还没完事儿,点run还是会报错,还有最重要的一步,编写.mk文件!!!!

eclipse中直接在jni中打开Android.mk文件,做如下修改,以后写了一个cpp就的在这里配置一个;

【cocos2d-x 环境配置-Mac配置篇】

 

ok,所有工作完成了,可以点run了!!

【cocos2d-x 环境配置-Mac配置篇】

再次生成.so成功,标志着跨平台编译跑起来了!

 

分类: 未分类 标签:

Can I use the cocos2d-x scheduler to delay a single line of code?

2013年11月26日 没有评论

I’m essentially trying to delay a modification on an object by 10 seconds.

This is what I thought might work:

this->scheduleOnce(schedule_selector(customer->setBusy(false)), 10000);

But I get a compiler error:

Lvalue required as unary '&' operand

Is there a simple way to delay a line of code? Maybe just using a c++ command would be more efficient, but the sleep command is giving me issues as well.

You need to write you schedularOnce like this

In .h file you declare

void myModification(float dt);

In .cpp file

this->scheduleOnce(schedule_selector(&MyClass::myModification), 10.0f);

void Myclass::myModification(float dt)
{
//your code
}

ALL These are in cocos2d-x 2.2

You can also achieve this by creating a callback and calling it from within a sequence if your class derives from Node. This is a useful pattern if you need to create chains of actions or synchronize game events with action sequences. (Cocos version 3+)

const float myDelay = 1.0f;
this->runAction( Sequence::create(
                                  DelayTime::create(myDelay),
                                  CallFunc::create(CC_CALLBACK_0(MyClass::MyFunction, this)),
                                  nullptr));

You will need to make a function out of that single line of code because you can’t pass values to a selector function. So something like this:

this->scheduleOnce(schedule_selector(MyClass::myModification), 10.0f);

Then you would have a function with the modification code in it.

void MyClass::myModification(float dt)
{
    customer->setBusy(false);
    // Whatever other stuff you want run.
}

Also, the delay at the end is measured in seconds, not milliseconds. So you would have been waiting a few hours for this to run.

this->scheduleOnce it only can use itself method

分类: stackoverflow精选, unity3d 标签:

Cocos2d-x 3.0 开发(十一)3.0 alpha1文件结构变化

2013年11月25日 没有评论

1、概述

    coco2d-x alpha1发布了,其文件结构发生了不小的变化,我们一起来看一看。


2、整体变化

    从整体上看,文件结构规整了许多:

    Cocos2d-x 3.0 开发(十一)3.0 alpha1文件结构变化

    先前根目录中的架构工程都移动到了build中。所有生成的lib依旧在Debug.win32中,只不过从根目录移动到这个文件夹下。

    cocos2d文件则改为cocos

    其文件结构:

    Cocos2d-x 3.0 开发(十一)3.0 alpha1文件结构变化

     2d则为最基础的包括点击响应、动作、CCNode等等。

    base中多为数据结构。

    editor-support为编辑器接入的代码

    gui中为3.0中新加入的UI封装。

    其余的文件基本看名字就知道了。


3、创建新项目

此部分只用于cocos2d-x 3.0 alpha版本,cocos2d-x 3.0 beta版本的创建项目可参考Cocos2d-x 3.0 开发(十六)cocos2dx-3.0beta版建立新项目并加载CocoStudio导出文件

     创建文件移动到了{COCOS2DX}/tools/project-creator/文件夹中。运行方法与先前相同,不过已经修复了创建新项目,项目名称仍然为HelloCpp的问题。

     这里我们只需要把先前的脚本稍作改动即可:

 

@echo off
echo =============新建项目==============
set /p name=请输入项目的名称:
echo 项目名为: %name%

echo 正在创建新项目...

set pk=com.fsy.

E:/OutFile/cocos2d-x-3.0alpha1/tools/project-creator/create_project.py -p %name% -k %pk%%name% -l cpp

echo 创建完成正在打开....

E:/OutFile/cocos2d-x-3.0alpha1/projects/%name%/proj.win32/%name%.sln

Pause

4、兼容先前项目

    由于coco2d目录位置更改,先的项目基本都用不了。我尝试更改项目文件和依赖文件来移植到3.0 alpha1发现很麻烦,推荐的方式是将先前class中的代码复制到一个新建的项目中来解决。

5、在项目中使用CocoStudio相关文件

    因为要使用cocoStudio导出文件,我们要添加一个附加包含目录:editor-support。另外要添加 cocos根目录。


    Cocos2d-x 3.0 开发(十一)3.0 alpha1文件结构变化

    然后在依赖库中添加:

    libGUI.lib 和libCocosStudio.lib  还需添加:libExtensions.lib;

Cocos2d-x 3.0 开发(十一)3.0 alpha1文件结构变化

 

    并设置依赖库目录:

Cocos2d-x 3.0 开发(十一)3.0 alpha1文件结构变化

    $(EngineRoot)build/Debug.win32

    然后在文件中使用相应的 namespace:


#include "cocostudio/CocoStudio.h"
using namespace cocostudio;

    本篇博客出自阿修罗道,转载请注明出处,禁止用于商业用途http://blog.csdn.net/fansongy/article/details/16950241 


分类: 未分类 标签:

Win7 64位+VS2012 + Qt5.1.1 + qwt6.1搭建

2013年11月23日 没有评论

1、概述

Qt用了很长时间发现我竟然没写过Qt的博客,这里补一篇吧。这篇中在vs2012中搭建一个qt的开发环境,并且将qwt集成到里面。上个图:

    Win7 64位+VS2012 + Qt5.1.1 + qwt6.1搭建

 

安装 VS 2012

     正常安装,不复述

    

安装qt

    去官网下一个最新的qt。我这里下载的是win32版本的。虽然我是64位机器,但为了编出32位的程序,我需要装一个32位的Qt环境。找到qt的官网http://qt-project.org/downloads我下载的版本是Qt 5.1.1 for Windows 32-bit (VS 2012, 511 MB)

    一路下一步安装。

安装vsAddIn

    下载下面的vs-add-in:VisualStudio Add-in 1.2.2 for Qt5  一路安装。


    然后就可以创建新Qt项目了。

    有些常见问题,比如gl2.h找不到之类的,可参照:http://www.cnblogs.com/dawnWind/p/QT_00.html   

 

安装qwt

    去qwt的官网下载qwt最新版本。我下载的是6.1版本:http://sourceforge.net/projects/qwt/files/qwt/6.1.0/

    然后解压运行qwt.pro,构建整个项目,使用生成文件配置环境。

 

配置环境

    配置DLL: 将qwt-6.101/lib目录下的dll复制到5.1.1/msvc2012/bin。

    配置lib: 将qwt-6.101/lib目录下的.lib复制到5.1.1/msvc2012/lib

    文件目录:在5.1.1/msvc2012/include目录里面新建个叫Qwt的文件夹,将qwt-6.101/src复制进去。

    添加Designer插件:将qwt-6.1/designer/plugins/designer目录下的.dll复制到5.1.1/msvc2012/plugins/designer目录下。

 

    如此配置,创建新项目时,在“项目属性”->“C++”->“常规”->“附加包含目录”中添加$(QTDIR)/include/Qwt 并且在“连接器”->“常规”->“输入”中添加“qwtd.lib”(或qwt.lib)。编译即可。


本篇博客出自阿修罗道,转载请注明出处,禁止用于商业用途http://blog.csdn.net/fansongy/article/details/16899489

         

分类: 未分类 标签:

MoveTo和MoveBy

2013年11月21日 没有评论

cc.MoveTo是“移动到这里”,而cc.MoveBy则是“相对于之前点再移动”,通俗一点就是说这里需要两个坐标pos1(x1,y1),pos2(x2,y2)。

如果是cc.MoveTo的话,就是将对象由pos1移动到pos2,而cc.MoveBy则是说对象的终坐标是在pos1的基础上再加上(矢量相加)pos2,终坐标pos3=pos1+pos2。

 

 

 

scaleEffect:function() {
        var start1_3 = cc.Sprite.createWithSpriteFrameName("transcription1.png");
        start1_3.setOpacity(255);
        start1_3.setScale(1.5);
        start1_3.setPosition(cc.p(350,150));
        this.addChild(start1_3,g_GameZOder.ui);
        var bigger = cc.ScaleBy.create(3, 2);  //变大
        var smaller = bigger.reverse(); // 恢复
        var moveLeft  = cc.MoveBy.create(0.1,cc.p(3,0));  // 左移
        var moveRight = moveLeft.reverse(); // 回位
        start1_3.runAction(cc.RepeatForever.create(cc.Sequence.create(bigger,smaller,moveLeft,moveRight))); // 变大缩小再闪动一下


        /*
        var animFrames = [];
        for(var i=1;i<=3;i++){
            var frame = cc.Sprite.createWithSpriteFrameName("transcription1.png");
            if (frame) {
                animFrames.push(frame);
            }
        }
        var animation = cc.Animation.create(animFrames, 0.1);
        var animate = cc.Animate.create(animation);
        this.runAction(cc.RepeatForever.create(animate));
        */

    }

 

分类: cocos2d 标签:

TintTo和TintBy

2013年11月21日 没有评论
//创建标签
var helloLabel = cc.LabelTTF.create("Hello World", "Arial", 38);
//设置位置
            helloLabel.setPosition(cc.p(100,100));
//添加到layer
            this.addChild(helloLabel, 5);

//改变颜色,不可reverse

             var hurtColor = cc.TintTo.create(2.5,-255,0,0);

//移动并同时改变颜色      helloLabel.runAction(cc.Spawn.create(cc.MoveBy.create(2.5, cc.p(0, 300 - 40)),
             hurtColor));

//改变颜色并回滚颜色
var action2 = cc.TintBy.create(2, -255, 0, 0);
            var action2Back = action2.reverse();
            helloLabel.runAction(cc.Sequence.create(action2, action2Back));

 

分类: cocos2d 标签: