(cocos2d-js游戏)测试你的反应速度----------基本逻辑(上)

   游戏玩法:点击开始游戏,等待一个随机时间,然后背景颜色会变(在t1时刻),这时候你需要点击屏幕(在t2时刻),游戏结束。你的反应时间就是天t2-t1。

 游戏逻辑:

   

游戏逻辑很简单,如上图所示。一共有五个界面,其实用五张图片就可以代替

主要代码:

var MainLayer = cc.LayerColor.extend({
	init:function()
	{
		//初始化界面
		 //0:点击开始界面 1:表示等待界面,2:表示在点击界面 3:结果界面 4:Too soon界面
		this.flag = 0;
		this._super();
		this.size = cc.Director.getInstance().getWinSize();
		this.setColor(cc.c4(180,170,160,255));
		this.showToStart();
		
		//可触摸
		this.setTouchEnabled(true);
	},

	/////////////////////////////////////////////////
	//处理触摸事件
	/////////////////////////////////////////////////
	onTouchesEnded:function(touches,event)
	{

	},
	onTouchesBegan:function(touches,event)
	{
		cc.log("onTouchsBegan",this.flag);
		switch(this.flag)
		{
			case 0:this.showWaite();break;
			case 1:this.showToSoon();break;
			case 2:this.showResult();break;
			case 3:this.showWaite();break;
			case 4:this.showWaite();break;
		}

	},
	//显示点击开始界面
	showToStart:function()
	{
		this.sprite = cc.Sprite.create(s_ClickToStart);
		this.sprite.setPosition(this.size.width/2,this.size.height/2);
		this.addChild(this.sprite,1);
		this.flag = 0;
		
	},

	//显示等待界面
	showWaite:function()
	{
		cc.log("showWaite");
		this.removeAllChildren();//清除所有控件
		this.unscheduleAllCallbacks();//清除定时器
		this.sprite = cc.Sprite.create(s_WaiteForGreen);
		this.sprite.setPosition(this.size.width/2,this.size.height/2);
		this.addChild(this.sprite,1);
		this.anim = cc.Sprite.create(s_WaiteForGreenAnim)
		this.anim.setPosition(this.size.width/2,this.size.height/2+200);
		this.addChild(this.anim,1);
		var action = cc.Sequence.create(cc.FadeOut.create(1.0),cc.FadeIn.create(1.0));
		var rep = cc.RepeatForever.create(action);
		this.anim.runAction(rep);
		this.flag = 1;
		//输出1-10的随机数
		randomTime = Math.floor(Math.random()*10+1);
		this.schedule(this.showGreen,randomTime,1,0); //添加定时器
		cc.log("randomTime",randomTime);
	},
	//显示点击的页面
	showGreen:function()
	{
		cc.log("showGreen");
		this.sprite = cc.Sprite.create(s_Click);
		this.sprite.setPosition(this.size.width/2,this.size.height/2);
		this.addChild(this.sprite,1);
		this.flag = 2;
		this.date1 = new Date();//颜色变化后,记录一个时间
	},

	showToSoon:function()
	{
		cc.log("showToSoon");
		this.unscheduleAllCallbacks();
		this.sprite = cc.Sprite.create(s_TooSoon);
		this.sprite.setPosition(this.size.width/2,this.size.height/2);
		this.addChild(this.sprite,1);
		this.flag = 3;
	},
	//显示结果界面
	showResult:function()
	{
		this.unscheduleAllCallbacks();
		this.date2 = new Date();//记录点击时间
		time = this.date2.getTime() - this.date1.getTime();
		this.sprite = cc.Sprite.create(s_Result);
		this.sprite.setPosition(this.size.width/2,this.size.height/2);
		this.addChild(this.sprite,1);
		cc.log("showResult",time);
		this.timeLabel = cc.LabelTTF.create(time+"ms","Arial",70);
		this.timeLabel.setColor(255,255,255);
		this.timeLabel.setPosition(this.size.width/2,this.size.height/2)
		this.addChild(this.timeLabel,1);
		this.flag = 4;
	}
});

///////////////////////////////////////////////////
var MainScene = cc.Scene.extend({
	onEnter:function(){
		this._super();
		var layer = new MainLayer();
		layer.init()
		this.addChild(layer);
	}
});



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。