前端之家收集整理的这篇文章主要介绍了
cocos2d-js rocker,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
- <pre name="code" class="javascript">var ControlLayer=cc.Layer.extend({
- rocker:null,startTouch:null,ctor:function(){
- this._super();
- this.rocker=new Rocker(this,cc.p(500,500),res.rockerBg_png,res.rockerCnt_png);
- },onTouchBegan:function(touches,event){
- var touch=touches[0];
- cc.log("onTouchBegan");
- this.startTouch=touch.getLocation();
- event.getCurrentTarget().rocker.moveRockerToPoint(this.startTouch);
- return true;
- },onTouchMoved:function(touches,event){
- var touch=touches[0];
- var currentTouch=touch.getLocation();
- var step=currentTouch.x-this.startTouch.x;
- var range=64;
- if(step>0){
- step=range;
- }else if(step<0){
- step=-range;
- }
-
- cc.log(step);
-
- event.getCurrentTarget().rocker.changeStep(step);
- },onTouchEnded:function(touches,event){
- var touch=touches[0];
- cc.log("onTouchEnded");
- event.getCurrentTarget().rocker.resetPosToDefult();
- }
- })
-
- var Rocker=cc.Class.extend({
- defultPos:null,bgSprite:null,cntSprite:null,ctor:function(parent,pos,res1,res2){
- this.defultPos=pos;
- this.bgSprite=new cc.Sprite(res1);
-
-
-
- parent.addChild(this.bgSprite)
-
- this.cntSprite=new cc.Sprite(res2);
- this.bgSprite.addChild(this.cntSprite);
-
- this.resetPosToDefult();
- cc.eventManager.addListener({
- event:cc.EventListener.TOUCH_ALL_AT_ONCE,swallowTouches:true,onTouchesBegan:parent.onTouchBegan,onTouchesMoved:parent.onTouchMoved,onTouchesEnded:parent.onTouchEnded
- },parent);
-
- },moveRockerToPoint:function(pos){
- this.bgSprite.setPosition(pos);
- },resetPosToDefult:function(){
- this.bgSprite.setPosition(this.defultPos);
- var contentSize=this.bgSprite.getContentSize();
- this.cntSprite.setPosition(cc.p(contentSize.width/2,contentSize.height/2));
- },changeStep:function(num){
- var contentSize=this.bgSprite.getContentSize();
- this.cntSprite.setPosition(cc.p(contentSize.width/2+num,contentSize.height/2));
- }
-
- })