微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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));
	}

})

原文地址:https://www.jb51.cc/cocos2dx/344347.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐