基于cocos2d-js游戏转盘demo

很多游戏中都有转盘中奖的设置,学习不久就把转盘来练手即熟悉了api同时也有点实用价值的。

核心代码如下:

var MenuLayer= cc.Layer.extend({
    sprite:null,
    ctor:function(){
        this._super();
        var size = cc.winSize;
        var center_x=size.width*0.5;
        var center_y=size.height*0.5;
        
        //转盘
        var zp_sprite=new cc.Sprite(res.zhuan_pan_png);
        zp_sprite.x=center_x;
        zp_sprite.y=center_y;
        this.addChild(zp_sprite);

        //数据初始化
        var zp_cx=zp_sprite.width*0.5;
        var zp_cy=zp_sprite.height*0.5;
        var zp_len=135;
        var e_rot=2*Math.PI/8;
        
        var data={"img":res.asset1_png,"name":"樱桃"},
                  {"img":res.asset2_png,"name":"番茄"},
                  {"img":res.asset3_png,"name":"红萝卜"},
                  {"img":res.asset4_png,"name":"包菜"},
                  {"img":res.asset5_png,"name":"南瓜"},
                  {"img":res.asset6_png,"name":"草莓"},
                  {"img":res.asset7_png,"name":"花菜"},
                  {"img":res.asset8_png,"name":"胡萝卜"}]
        var len=data.length;
        
        for(var i=0;i0&&speed<0.2)
            {
                speed=0;
                acc=0;
            }
            zp_sprite.setRotation(zp_sprite.getRotation()+speed);    
            
            var p=zp_sprite.convertToNodeSpace(cc.p(center_x,center_y+zp_len));
            var len=data.length;
            var temp_tag=0;
            var temp_distance=10000;
            for(var i=0;i<len;i++)
            {
                var child=zp_sprite.getChildByTag(i+100)
                var distance=(child.x-p.x)*(child.x-p.x)+(child.y-p.y)*(child.y-p.y)
                if(distance<temp_distance)
                {
                    temp_distance=distance;
                    temp_tag=i;
                }
            }

            cur_tex=cc.textureCache.addImage(data.img);
            cur_spr.setTexture(cur_tex)
            
        }
        
        cc.director.getScheduler().scheduleCallbackForTarget(
                shou_spr,ani_shou_handler,0.1,cc.REPEAT_FOREVER,0,false)

        cc.director.getScheduler().scheduleCallbackForTarget(
                zp_sprite,ani_zp_handler,0.1,cc.REPEAT_FOREVER,0,false);
        return true;
    }
});


```


blog原文地址:http://blog.rgbtime.com/topic/11/%25E5%259F%25BA%25E4%25BA%258Ecocos2d%25E7%259A%2584%25E6%25B8%25B8%25E6%2588%258F%25E8%25BD%25AC%25E7%259B%2598demo
再赚个外链 http://www.rgbtime.com
*