闪存卡记忆游戏源码,教教我!

1.首先创建一个电影剪辑“B”,并在电影剪辑的第一帧上绘制一张“卡片”。这张卡是没有被反转的那张。(报名点在卡的左上角)

2.在影片剪辑“B”的第二帧中插入一个空白关键帧。

3.创建一个新的电影剪辑“K”。这部电影剪辑的每一帧都是一种翻牌。也就是说,你可以在这里的每一帧上画一张卡片,每一帧都是不同的风格。你可以决定有多少张牌。

4.回去编辑电影剪辑“B”,把你的电影剪辑“K”放在空帧2上,这样最好能让它和第一帧的“卡”重合(也就是播放时不会抖动)。

5.选择电影剪辑“B”的第一帧,按F9,在打开的动作面板中输入:stop();

6.在影片剪辑“b”的第二帧中选择影片剪辑“k ”,并在属性面板的“实例名称”列中填写“kid”。然后选择电影剪辑“b”的第二帧之后的帧(简而言之,第二帧到这一帧的时间就是显示卡片的时间,多试试就知道了),按F5插入帧(注意不是关键帧!).

7.在“库”中选择电影剪辑“B”,右键选择“链接”。在出现的对话框中,检查第一项和第三项,并在“标识符”列中填写“块”。

8.回到主场景,选择要开始游戏的帧(例如第一帧),按F9,在打开的动作面板中输入(注意标点符号):

_ root . h = 5;

_ root . w = 4;

_ root . k = 10;

_ root . prox = 0;

_ root . proy = 0;

_ root . xscl = 10;

_ root . yscl = 10;

_ root.hei = 80

_ root.wid = 80

// -

stop();

_ root . score = 0;

_ root . blocks =[];

_ root . firx = 0;

_ root . firy = 0;

for(I = 1;我& lt= _ root.wi++) {

_ root . blocks[I]=[];

for(j = 1;j & lt= _ root.hj++) {

_ root . blocks[I][j]= 0;

}

}

for(I = 1;我& lt= _ root.ki++) {

var px = random(_ root . w)+1;

var py = random(_ root . h)+1;

while(_ root . blocks[px][py]& gt;0) {

px = random(_ root . w)+1;

py = random(_ root . h)+1;

}

_ root . blocks[px][py]= I;

while(_ root . blocks[px][py]& gt;0) {

px = random(_ root . w)+1;

py = random(_ root . h)+1;

}

_ root . blocks[px][py]= I;

}

for(I = 1;我& lt= _ root.wi++) {

for(j = 1;j & lt= _ root.hj++) {

带有(_root) {

attachMovie("block "," block"+i+"/"+j,getNextHighestDepth(),{_x:prox+(j-1)*(wid+xscl),_y:proy+(i-1)*(hei+yscl),_height:_root.hei,_ width:_ root . wid });

}

_root["block"+i+"/"+j]。px = I;

_root["block"+i+"/"+j]。py = j;

_root["block"+i+"/"+j]。k = _ root . blocks[I][j];

_root["block"+i+"/"+j]。onMouseDown = function() {

var xx = _root。_ xmouse

var yy = _root。_ ymouse

如果((xx-这个。_ x & gt0 & amp& ampxx-这个。_ x & lt_ root . wid)& amp;& amp(YY-这个。_ y & gt0 & amp& ampYY-这个。_ y & lt_root.hei)){

if (_root.firx == 0) {

this . gotoandstop(2);

this . kid . gotoandstop(this . k);

_ root . firx = this . px;

_ root . firy = this . py;

} else if(_ root . firx = = this . px & amp;& amp_root.firy == this.py) {

this . gotoandstop(1);

_ root . firx = 0;

_ root . firy = 0;

}否则{

if(_ root . blocks[this . px][this . py]= = _ root . blocks[_ root . firx][_ root . firy]){

_ root . score++;

_ root[" block "+_ root . firx+"/"+_ root . firy]。remove movie clip();

_ root . firx = 0;

_ root . firy = 0;

if(_ root . score & gt;= _root.k){

_root.gotoAndStop(这里写游戏获胜后主场景会跳转的帧数);

}

this . removemovieclip();

}否则{

_ root[" block "+_ root . firx+"/"+_ root . firy]。play();

_ root . firx = 0;

_ root . firy = 0;

this . gotoandplay(2);

this . kid . gotoandstop(this . k);

}

}

}

};

}

}

您可以更改虚线前语句中等号后面的数字:

H -"卡片"矩阵的水平数量;

W -"卡片"矩阵的垂直数量;

K -卡的类型,每种类型将创建一对卡;

(注意!!!对于这三个量,必须满足:h*w = 2*k,否则闪存卡会丢失!)

Prox -卡片矩阵左上角的横坐标。

Proy -卡片矩阵左上角的纵坐标。

卡片的水平间距。

Yscl -卡片的垂直间距。

Hei -卡的高度。

Wid -卡片的宽度。

还有,你要自己去换黑匣子里的东西。....

嗯,那应该和你说的差不多。看看有没有问题?或者你可以发邮件什么的,我可以把文件发给你。

题外话:这是我手工打了半个小时的。。。反正你得加点分。。