cocos2d-js 翻牌

pg.TurnCardLayer = cc.Layer.extend({
    okBtn: null
});

pg.TurnCardLayer.create = function () {
    var res = new pg.TurnCardLayer();
    return (res && res.init()) ? res : null;
};

pg.TurnCardLayer.prototype.ctor = function () {
    cc.Layer.prototype.ctor.call(this);

    // 初始化
    console.log("TurnCardLayer:init");
    // 屏幕大小
    var winSize = cc.winSize;

    // 设定纹理格式
    pg.setDefaultTextureFormat(cc.Texture2D.PIXEL_FORMAT_RGB565);

    // 创建背景
    var bgSprite = new cc.Sprite(res.StartBG_568_png);
    bgSprite.setPosition(winSize.width / 2,winSize.height / 2);
    this.addChild(bgSprite);

    // 重置纹理格式
    pg.setDefaultTextureFormat(cc.Texture2D.PIXEL_FORMAT_RGBA4444);

    var okBtnItem = cc.MenuItemImage.create(res.Start_png);
    okBtnItem.setPosition(winSize.width / 2,winSize.height / 2);

    var menu = new cc.Menu(okBtnItem);
    menu.setPosition(0,0);
    this.addChild(menu,10);

    // 输出纹理内存占用
    pg.dumpTextureInfo();
};

pg.TurnCardLayer.prototype.init = function () {

    return true;
};

pg.TurnCardLayer.prototype.onClear = function () {
    pg.Layer.prototype.onClear();
    console.log("TurnCardLayer:clear");
    pg.removeTextureForKey(res.StartBG_568_png);
};


pg.TurnCardScene = cc.Scene.extend({
    actionIsDone: false
});

pg.TurnCardScene.create = function (num) {
    var res = new pg.TurnCardScene();
    if (res && res.init(num)) {
        // var layer = pg.TurnCardLayer.create();
        // res.addChild(layer);
        return res;
    }
    return null;
};

pg.TurnCardScene.prototype.init = function (num) {
    //加一背景
    // var background = cc.LayerColor.create(cc.color(255,180,255,255),cc.size.width,cc.size.height);
    // this.addChild(background);

    this.actionIsDone = true;// 标示动作是否完成

    this.createPoker();      // 创建扑克

    this.createListener();   // 注册监听

    return true;
};

// 创建扑克
pg.TurnCardScene.prototype.createPoker = function () {
    // 扑克牌正面
    // 创建背景

    // var pokerFront = new cc.Sprite(res.Card_Clubs_2_png);
    // pokerFront.setVisible(true);
    // pokerFront.setPosition(cc.p(cc.winSize.width / 2,cc.winSize.height / 2));
    // this.addChild(pokerFront,1,123);
    //
    // 扑克牌反面
    var pokerBack = new cc.Sprite(res.Card_BackGround_normal_png);
    pokerBack.setPosition(cc.p(cc.winSize.width / 2,cc.winSize.height / 2));
    this.addChild(pokerBack,1,321);
};

// 翻牌动作
pg.TurnCardScene.prototype.startOrbitaction = function () {
    // // 扑克牌正面
    // var pokerFront = this.getChildByTag(123);
    // // 扑克牌反面
    var pokerBack = this.getChildByTag(321);

    var actionBy = cc.rotateBy(0.2,0,-90);

    pokerBack.runAction(cc.sequence(actionBy,        cc.callFunc( function() {
            pokerBack.setTexture(res.Card_Clubs_2_png);
            pokerBack.setFlippedX(true);
        }),        actionBy
    ));
};

pg.TurnCardScene.prototype.actionIsDownFunc = function () {
    this.actionIsDone = true;
};

pg.TurnCardScene.prototype.createListener = function() {
    var listener = cc.EventListener.create({
        event: cc.EventListener.TOUCH_ALL_AT_ONCE,        swallowtouches: true,        ontouchesBegan: function (touches,event) {

            var target = event.getCurrentTarget();
            target.onTouchBegan(touches);

            return true;
        },        ontouchesMoved: function (touches,event) {

            var target = event.getCurrentTarget();
            target.onTouchMoved(touches);
        },        ontouchesEnded: function (touches,event) {

            var target = event.getCurrentTarget();
            target.onTouchEnded(touches);
        }
    });
    cc.eventManager.addListener(listener,this);
};

pg.TurnCardScene.prototype.onTouchBegan = function (touches) {
    var touch = touches[0];
    var convertedLocation = touch.getLocation();

    this.startOrbitaction();
    return true;
};

pg.TurnCardScene.prototype.onTouchMoved = function (touches) {
    var touch = touches[0];
    var convertedLocation = touch.getLocation();
};

pg.TurnCardScene.prototype.onTouchEnded = function (touches) {

};

pg.TurnCardScene.prototype.onEnter = function () {
    cc.Layer.prototype.onEnter.call(this);
};

pg.TurnCardScene.prototype.onExit = function (){
    cc.Layer.prototype.onExit.call(this);
};

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...