flash教你做贪吃蛇游戏
期末作业题目一 贪吃蛇
该游戏类似于手机贪食蛇,通过控制键盘的方向键可以操作小蛇上下左右移动,小蛇吃掉苹果后会自动增长一节,该游戏考察玩家反应能力,效果图如下:
制作步骤:
一、打开flash cs3,新建一个flas件(as2.0);
二、设置影片大小600×500px,背景为“#999999”,帧频:6
三、保存文件为“学号-期末作业1.fla”,导出影片,设置flash player版本为5.0,如下:
四、导入外部库(贪食蛇素材.fla,库中有:
1、苹果图形元件:apple
2、棋盘图形元件:map
3、蛇头影片剪辑元件:worm
4、蛇尾影片剪辑元件:worm tail
五、新建一个图形元件,名称为“arrow”,在该元件编辑状态下:
1、在“图层1”的第1帧中绘制一个箭头(大小40×30px,居中对齐),效果图截图如下:
2、返回场景1;
六、新建一个按钮元件,名称为“new game”,在该元件编辑状态下:
1、在“弹起”帧中,利用矩形工具和文本工具绘制如下图形,居中对齐:
2、在“指针经过”帧中,修改填充为其它颜,如下:
3、返回场景1;
七、新建一个影片剪辑元件,名称为“food”,在该元件编辑状态下:
1、在“图层1”的第1帧,插入Actions代码:stop();
2、单击第2帧,插入关键帧,将库中的元件“apple”拖入舞台,并居中对齐
3、返回场景1
八、在图层1上新建4个图层
九、单击选中“图层1”,在这层中布置棋盘和文字说明
1、在第1帧中,将库中的图形元件“map”拖入到舞台,左上角对齐;
2、将库中的按钮元件“arrow”拖入到舞台4次,适当的旋转,形成如下形状:
3、将库中的图形元件“apple”拖入到舞台右侧,在下方利用文本工具输入文字“P”,设置字号:70,文本颜白
4、设置文本工具:大小为20、动态文本,然后再苹果和文字P的右侧各绘制一个动态文本框,苹果右侧的动态文本框设置变量名:eaten;文字P右侧的动态文本框设置变量名:point
s
5、在箭头上利用文本工具添加适当的文字说明,最终效果图如下:
6、单击第8帧,插入帧
十、将“图层2”移到“图层1”的下方,然后开始制作图层2
1、在第1帧中,利用矩形工具,绘制一个正方形(填充为黄,大小400×400px,左上角对齐),该矩形刚好覆盖整个棋盘;
2、利用矩形工具在舞台的右侧绘制一个平行四边形(笔触为黑,填充为蓝);
3、将库中的按钮元件“new game”拖入到平行四边形上,选中该按钮,在动作面板中输入Actions代码:
on (release) {
    gotoAndPlay("initialize");
}
4、单击第8帧,插入帧,效果图如下:
十一、制作图层3
1、单击第3、6帧,分别插入关键帧;
2、单击第8帧,插入帧;
3、单击第3帧,将库中的元件worm和worm tail拖入到舞台中,后者拖入两次,相对位置如
下:并分别设置实例名称:worm、tail1、tail2,设置位置worm(232,168)、tail1(248,168),tail2(264,168)(这里要让蛇头和蛇尾纵坐标一致,横坐标差16,很关键,否则无法成功
4、选中蛇头元件worm,在动作面板中输入Actions代码:
onClipEvent ( keyDown ) {
if (Key.isDown( Key.LEFT))
{
    if (!../:mright) {
        ../:mleft = 1;
        ../:mright = 0;
        ../:mup = 0;
        ../:mdown = 0;
    }
}
if (Key.isDown( Key.RIGHT))
{制作flash
    if (!../:mleft) {
        ../:mleft = 0;
        ../:mright = 1;
        ../:mup = 0;
        ../:mdown = 0;
    }
}
if (Key.isDown( Key.UP))
{
    if (!../:mdown) {
        ../:mleft = 0;
        ../:mright = 0;
        ../:mup = 1;
        ../:mdown = 0;
    }
}
if (Key.isDown( Key.DOWN))
{
    if (!../:mup) {
        ../:mleft = 0;
        ../:mright = 0;
        ../:mup = 0;
        ../:mdown = 1;
    }
}
}
5、将库中的元件food拖入到舞台中,放置在左上角,并设置实例名称:food
6、单击第6帧,利用文本工具,字号65,颜分别为红和黑,输入文本“Game Over!”,再将两者叠加
十二、制作图层4
1、单击第2、3、6帧,分别插入关键帧,并在属性面板中依次修改其帧标签为:“initialize”、“game loop”、“game over”;
2、单击第8帧,插入帧
十三、制作图层5
1、单击第1帧,在动作面板中输入Actions语句:stop();
2、单击第2帧,插入关键帧,在动作面板中输入Actions语句:
mleft = 1;
mright = 0;
mup = 0;
mdown = 0;
food = 0;
tails = 2;
eaten = 0;
points = 0;
time = 0;
3、单击第3帧,插入关键帧,在属性面板中设置帧标签为“main action”,并在动作面板中输入Actions语句:
dead = 0;
if (!food) {
    randomy = 16*(random(25));
    randomx = 16*(random(25));
    setProperty("/food", _x, (randomx+8));
    setProperty("/food", _y, (randomy+8));
    food = 1;
    tellTarget ("/food") {
        gotoAndStop(2);
    }
}
if (mleft) {
    if (getProperty("/worm", _x) != 8) {
        lastx = getProperty("/worm", _x);
        lasty = getProperty("/worm", _y);
        setProperty("/worm", _x, (getProperty("/worm", _x)-16));
        setProperty("/worm", _rotation, 0);
    } else {
        dead = 1;
    }
} else if (mright) {
    if (getProperty("/worm", _x) != 392) {
        lastx = getProperty("/worm", _x);
        lasty = getProperty("/worm", _y);
        setProperty("/worm", _x, (getProperty("/worm", _x)+16));
        setProperty("/worm", _rotation, 180);
    } else {
        dead = 1;
    }
} else if (mup) {
    if (getProperty("/worm", _y) != 8) {
        lastx = getProperty("/worm", _x);
        lasty = getProperty("/worm", _y);
        setProperty("/worm", _y, (getProperty("/worm", _y)-16));
        setProperty("/worm", _rotation, 90);
    } else {
        dead = 1;
    }
} else if (mdown) {
    if (getProperty("/worm", _y) != 392) {
        lastx = getProperty("/worm", _x);
        lasty = getProperty("/worm", _y);
        setProperty("/worm", _y, (getProperty("/worm", _y)+16));
        setProperty("/worm", _rotation, 270);
    } else {
        dead = 1;
    }
}
for (currenttail=1; currenttail<=tails; currenttail++) {

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。