cocos2d-js v3.6.1 扑克弹出,缩回例子

来源:互联网 发布:常用电气数据手册 编辑:程序博客网 时间:2024/06/05 14:44



首先定义一个 poker类:




var Poker = cc.Sprite.extend({
    bSelect:false,   //是否已选
    bDianJi:true,   //是否能点击
    huaSe:5,    //花色:黑0,红1,梅2,方3,王4,无效5
    num:0,      //牌值
    number:0,   //总牌值:1-54
    local_x:0,        //扑克的x值
    local_y:0,        //扑克y值,点击扑克时做弹出收回操作
    ctor:function(menu,Num,x,y){
        this._super();

        this.number = Num;
        if(Num<1 || Num>54){cc.log("input poker number is error!");}
        this.local_x = x;
        this.local_y = y;
        if(Num==1 || Num ==2){
            this.huaSe = 4;
            this.num = Num;
        }else {
            this.huaSe = Math.floor(Num/16);
            this.num = Num%13;
        }
        var picName1 = "res/"+ Num + ".jpg";

        var menuSprite = cc.MenuItemImage.create(picName1,picName1,this.callback,this);
        menuSprite.setAnchorPoint(AnchorPoint.CENTER_MIDDLE);
        menu = cc.Menu.create(menuSprite);
        menu.setAnchorPoint(AnchorPoint.CENTER_MIDDLE);
        menu.setPosition(cc.p(x,y));
        menu.setVisible(true);
        menu.retain();
        m_pk[Num] = menu;
        m_this.addChild(menu,20);

        return this;
    },
    onEnter:function(){
        this._super();
    },
    callback:function(){
        if(this.bDianji == true){
            cc.log("HuaSe="+this.huaSe +",Num="+this.num+"Number="+this.number);
            m_curPK = this.number;
            if(this.bSelect==false){
                this.pokerLuTou();
            }else{
                this.pokerSuoTou();
            }
        }else{
            cc.log('can not click!');
        }
    },
    pokerLuTou:function(){
        cc.log('LuTou.x='+this.local_x+',y='+(this.local_y+PKUpLength));
        this.bSelect = true;
        m_pk[this.number].setPosition(cc.p(m_pk[this.number].x, m_pk[this.number].y+PKUpLength));
    },
    pokerSuoTou:function(){
        cc.log('SuoTou.x='+this.local_x+',y='+this.local_y-PKUpLength);
        this.bSelect = false;
        m_pk[this.number].setPosition(cc.p(m_pk[this.number].x, m_pk[this.number].y-PKUpLength));
    }

});




调用者:


for(var i=1; i<=54;i++){

            m_poker[i] = new Poker(m_pk[i],i,size.width/10+PKJianJu*(i),size.height/4*3);

        }


如此,便能显示扑克,并且响应点击事件,弹出,缩回扑克













0 0
原创粉丝点击