您的位置:首页 > 移动开发 > Cocos引擎

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

2014-10-29 19:49 183 查看
游戏玩法:点击开始游戏,等待一个随机时间,然后背景颜色会变(在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);
}
});









内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: