上一篇:cocos2dx CrystalCraze 宝石消除游戏 解析(一)
上一篇介绍了 mainScene界面,下面进入正题,GameScne界面!会比较长,毕竟1000行代码啊,耐心看下吧
2 GameScene.js
这才是游戏界面的主要控制代码,一看1000行代码,啥也不说了,慢慢看吧...
界面还是从onDidLoadFromCCB 开始
//开始游戏
GameScene.prototype.onDidLoadFromCCB = function()
{
// 初始化面板 各种数组
setupBoard();
//游戏是否结束 是否显示提示
gIsGameOver = false;
gIsDisplayingHint = false;
//浏览器设置可以 鼠标控制
if( sys.platform == 'browser')
this.rootNode.setMouseEnabled( true );
// 触摸事件 跟鼠标事件
this.rootNode.onTouchesBegan = function( touches, event) {
this.controller.onTouchesBegan(touches, event);
return true;
};
this.rootNode.onMouseDown = function( event) {
this.controller.onMouseDown(event);
return true;
};
// Setup timer 进度条
this.sprtTimer.setVisible(false);
gTimer = cc.ProgressTimer.create(cc.Sprite.create("gamescene/timer.png"));
gTimer.setPosition(this.sprtTimer.getPosition());
gTimer.setPercentage(100);
gTimer.setType(cc.PROGRESS_TIMER_TYPE_BAR);
gTimer.setMidpoint(cc.p(0, 0.5));
gTimer.setBarChangeRate(cc.p(1, 0));
this.sprtHeader.addChild(gTimer);
//这是最后的点击时间,连击的个数,是否是炸弹,是否快没有时间
var dNow = Date.now();
gStartTime = dNow + kIntroTime;
gLastMoveTime = dNow;
gNumConsecutiveGems = 0;
gIsPowerPlay = false;
gEndTimerStarted = false;
gScore = 0;
// 没帧刷新onUpdate方法
this.rootNode.onUpdate = function(dt) {
this.controller.onUpdate();