-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMC4.as
150 lines (116 loc) · 3.35 KB
/
MC4.as
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
public class MC4 extends MovieClip {
private static const HAPPY:Boolean = true;
private static const SAD:Boolean = false;
//定义要加到屏幕的青蛙
private var frog1:frog = new frog();
private var frog2:frog = new frog();
private var frog3:frog = new frog();
private var frog4:frog = new frog();
private var frog5:frog = new frog();
private var frog6:frog = new frog();
private var frog7:frog = new frog();
private var frogArray:Array = new Array();
private var win:Boolean = false;//通关标志位
public function MC4() {
levelRecorder.level = 4;//把当前关卡数记录到levelRecorder里
frog1.setMood(SAD);
frog1.x=100;
frog1.y=240;
frog2.setMood(HAPPY);
frog2.x=150;
frog2.y=120;
frog3.setMood(HAPPY);
frog3.x=200;
frog3.y=360;
frog4.setMood(SAD);
frog4.x=300;
frog4.y=120;
frog5.setMood(HAPPY);
frog5.x=400;
frog5.y=120;
frog6.setMood(SAD);
frog6.x=350;
frog6.y=360;
frog7.setMood(SAD);
frog7.x=450;
frog7.y=240;
//青蛙间建立邻居关系
frog1.addNearby(frog2);
frog1.addNearby(frog3);
frog2.addNearby(frog1);
frog2.addNearby(frog4);
frog3.addNearby(frog1);
frog3.addNearby(frog6);
frog4.addNearby(frog2);
frog4.addNearby(frog5);
frog5.addNearby(frog4);
frog5.addNearby(frog7);
frog6.addNearby(frog3);
frog6.addNearby(frog7);
frog7.addNearby(frog5);
frog7.addNearby(frog6);
//给舞台加上checkAll的监听器,检测是否通关。。。给MC1加上onClick监听器,来改变青蛙状态
stage.addEventListener(Event.ENTER_FRAME,checkAll);
this.addEventListener(MouseEvent.CLICK,onClick);
//相邻的青蛙连线
link(frog1,frog2);
link(frog2,frog4);
link(frog4,frog5);
link(frog5,frog7);
link(frog7,frog6);
link(frog6,frog3);
link(frog3,frog1);
//青蛙的引用放入数组,方便遍历。
frogArray.push(frog1);
frogArray.push(frog2);
frogArray.push(frog3);
frogArray.push(frog4);
frogArray.push(frog5);
frogArray.push(frog6);
frogArray.push(frog7);
for (var k in frogArray){
addChild(frogArray[k]);
}
}
// 检测点击,改变青蛙状态
private function onClick(e:MouseEvent):void{
trace(e.target.myNum);
trace(e.target.nearby.length);
for each(var k in e.target.nearby){
k.changeMood();
}
e.target.changeMood();
}
//仅为测试代码,用完即删
private function showPos(e:MouseEvent):void{
trace(mouseX,mouseY);
trace("showpos"+frog1.x,frog1.y,frog2.x,frog2.y);
trace("stage"+e.stageX,e.stageY+"..."+mouseX,mouseY);
}
//青蛙间连线的函数
private function link(f1:frog,f2:frog){
graphics.lineStyle(2,0x00ffff,1.0);
graphics.moveTo(f1.x,f1.y);
graphics.lineTo(f2.x,f2.y);
}
//检测是否通关
private function checkAll(e:Event):void{
if(!win){
for each (var f in frogArray){
if (f.detectMood() == false) return;
}
trace("you win");
var next_level:nextLevel = new nextLevel();
next_level.x =427;
next_level.y =240;
addChild(next_level);
win = true;
this.removeEventListener(MouseEvent.CLICK,onClick);
}
}
}
}