1 /*
2 * 游戏初始化场景的建立
3 */
4 var GameInitializeScene = ccui.Layout.extend(
5 {
6 size:null,
7 isMusic:true,
8 ctor:function()
9 {
10 this._super();
11 this.zinit();
12 this.setTopInfor();
13 this.setBlinkAction();
14 this.scheduleOnce(this.setGameButton, 1);//延时1s
15 },
16 //设置与玩家交互的按钮(新游戏、继续游戏、帮助、退出)
17 setGameButton:function()
18 {
19 var gap = 7;
20 var a = 340, b = 275, c = 210, d = 145;
21 //新游戏
22 var newGameBtn = new myButton(res.newgame);
23 var endX = this.size.width - newGameBtn.width >> 1;
24 var endY = this.size.height+100;;
25 newGameBtn.name = "newGame";
26 newGameBtn.x = endX;
27 newGameBtn.y = endY;
28 this.addChild(newGameBtn, 1);
29 //action1
30 var moveTo1 = cc.MoveTo.create(5, cc.p(endX, a));
31 var easeOut1 = moveTo1.clone().easing(cc.easeElasticOut());
32 newGameBtn.runAction(easeOut1);
33
34 //继续游戏
35 var continueGameBtn = new myButton(res.resume);
36 continueGameBtn.name = "continueGame";
37 continueGameBtn.x = endX;
38 continueGameBtn.y = endY
39 this.addChild(continueGameBtn, 1);
40 //action2
41 var moveTo2 = cc.MoveTo.create(4, cc.p(endX, b));
42 var easeOut2 = moveTo2.clone().easing(cc.easeElasticOut());
43 continueGameBtn.runAction(easeOut2);
44
45 //帮助
46 var helpGameBtn = new myButton(res.help);
47 helpGameBtn.name = "helpGame";
48 helpGameBtn.x = endX;
49 helpGameBtn.y = endY;
50 this.addChild(helpGameBtn, 1);
51 //action3
52 var moveTo3 = cc.MoveTo.create(3, cc.p(endX, c));
53 var easeOut3 = moveTo3.clone().easing(cc.easeElasticOut());
54 helpGameBtn.runAction(easeOut3);
55
56 //退出
57 var exitGameBtn = new myButton(res.exit);
58 exitGameBtn.name = "exitGame";
59 exitGameBtn.x = endX;
60 exitGameBtn.y = endY;
61 this.addChild(exitGameBtn, 1);
62 //action4
63 var moveTo4 = cc.MoveTo.create(2, cc.p(endX, d));
64 var easeOut4 = moveTo4.clone().easing(cc.easeElasticOut());
65 exitGameBtn.runAction(easeOut4);
66
67 newGameBtn.addTouchEventListener(this.btnControlGameFunc, this);
68 continueGameBtn.addTouchEventListener(this.btnControlGameFunc, this);
69 helpGameBtn.addTouchEventListener(this.btnControlGameFunc, this);
70 exitGameBtn.addTouchEventListener(this.btnControlGameFunc, this);
71 },
72 //按钮侦听函数
73 btnControlGameFunc:function(target, state)
74 {
75 if(state == ccui.Widget.TOUCH_ENDED)//松开
76 {
77 switch (target.name)
78 {
79 case "newGame": //进入新游戏
80 var newGameScene = TransitionScene.createScene(true);
81 cc.director.runScene(cc.TransitionFade.create(1, newGameScene));
82 cc.log("newGame");
83 break;
84 case "continueGame"://继续游戏
85 var newGameScene = TransitionScene.createScene(false);
86 cc.director.runScene(cc.TransitionFade.create(1, newGameScene));
87 break;
88 case "helpGame"://游戏帮助
89 var helpScene = GameHelpLayout.createScene();
90 cc.director.runScene(cc.TransitionFade.create(1, helpScene));
91 break;
92 case "exitGame"://退出游戏
93 cc.log("exitGame");
94 break;
95 }
96 }
97 },
98 //设置三个Blink图片分别从屏幕左右出现动画
99 setBlinkAction:function()
100 {
101 var blink1 = new myImage(res.blink1);
102 blink1.x = -blink1.width - 20;
103 blink1.y = this.size.height - blink1.height - 65;
104 this.addChild(blink1, 1);
105 var moveTo1 = cc.moveTo(1, cc.p((this.size.width-blink1.width)/2, blink1.y));
106 blink1.runAction(moveTo1);
107
108 var blink2 = new myImage(res.blink2);
109 blink2.x = this.size.width + 20;
110 blink2.y = blink1.y - blink2.height+40;
111 this.addChild(blink2, 1);
112 var moveTo2 = cc.moveTo(1, cc.p((this.size.width-blink1.width)/2 - 30, blink2.y));
113 blink2.runAction(moveTo2);
114
115 var blink3 = new myImage(res.blink3);
116 blink3.x = blink1.x;
117 blink3.y = blink2.y - blink3.height+70;
118 this.addChild(blink3, 1);
119 var moveTo3 = cc.moveTo(1, cc.p((this.size.width-blink1.width)/2 + 50, blink3.y));
120 blink3.runAction(moveTo3);
121 },
122 //设置游戏初始化界面顶部显示信息(最高纪录、声音控制)
123 setTopInfor:function()
124 {
125 var maxRecord = new myImage(res.maxrecord);
126 maxRecord.x = 10;
127 maxRecord.y = this.size.height - maxRecord.height - 20;
128 this.addChild(maxRecord, 1);
129
130 var maxScore = new myImage(res.maxscore);
131 maxScore.x = maxRecord.x + maxRecord.width + 30;
132 maxScore.y = maxRecord.y;
133 this.addChild(maxScore, 1);
134 //最高纪录
135 var maxScoreLabel = new myText(this.maxScore.toString(), white, 26);
136 maxScoreLabel.x = maxScore.x+(maxScore.width - maxScoreLabel.width)/2;
137 maxScoreLabel.y = maxScore.y;
138 this.addChild(maxScoreLabel, 2);
139 //声音喇叭
140 var laba = new myButton(res.labaok);
141 laba.x = this.size.width - laba.width - 5;
142 laba.y = maxScore.y;
143 this.addChild(laba, 1);
144 laba.addTouchEventListener(this.controlLabaFunc, this);
145 },
146 //喇叭控制响应侦听函数
147 controlLabaFunc:function(target, state)
148 {
149 if(state == ccui.Widget.TOUCH_ENDED)//松开
150 {
151 if(this.isMusic)//设为静音
152 {
153 target.loadTextures(res.labano, "");
154 this.isMusic = false;
155 }
156 else //播放音乐
157 {
158 target.loadTextures(res.labaok, "");
159 this.isMusic = true;
160 }
161 }
162 },
163 //初始化函数
164 zinit:function()
165 {
166 //设置布局大小
167 this.size = cc.size(480, 800);
168 this.setSize(this.size);
169 //实例化背景图片
170 var backGround = new myImage(res.mainbacktop);
171 backGround.y = this.size.height - backGround.height;
172 this.addChild(backGround, 0);
173 var backGround1 = new myImage(res.mainbackbottom);
174 this.addChild(backGround1, 0);
175 //玩家本地数据
176 this.playerGameData = PlayerLocalData.getItem();
177 //这里要注意,第一次进入游戏时,this.playerGameData是一个数组,之后就变成对象了,这里确保游戏中统一用对象
178 if(this.playerGameData.length == true)
179 {
180 this.playerGameData = this.playerGameData[0];
181 }
182 else
183 {
184 this.playerGameData = this.playerGameData;
185 }
186 this.maxScore = this.playerGameData.maxScore;//游戏最高得分
187 }
188 });
189
190
191 GameInitializeScene.createScene = function()
192 {
193 var scene = cc.Scene.create();
194 var layout = new GameInitializeScene();
195 scene.addChild(layout);
196 return scene;
197 };