Flash AS代码实现智力过河小游戏

闪吧   发布时间:2014-07-24 15:18:03   作者:原始人   我要评论
本教程主要用Flash AS来编写一个智力过河小游戏,全部使用AS代码来实现,教程比较基础,转发过来,希望对大家有所帮助
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

本教本教程主要用Flash AS来编写一个智力过河小游戏,全部使用AS代码来实现,教程比较基础,转发过来,希望对大家有所帮助。

游戏规则:

一只大狮子,一只小狮子,一只大老虎、一只小老虎、一只大花豹,一只小花豹要到河对面去,只有大动物和小老虎会划船,船每次只能乘两只动物。大动物之间互相吃不了,小动物之间互相吃不了,如果大动物不在同类的小动物就会被异类大动物吃掉。

复制粘贴到第一帧,测试:


复制代码
代码如下:
创建开始场景();
function 创建开始场景() {
创建TXT_MC(this, 游戏名, 智力过河, 200, 100, 300, false);
创建TXT_MC(this, 游戏开始, 游戏开始, 250, 200, 100, true);
创建TXT_MC(this, 游戏说明, 游戏说明, 250, 250, 100, true);
游戏开始.onPress = function() {
删除开始场景();
创建游戏场景();
};
游戏说明.onPress = function() {
删除开始场景();
创建说明场景();
};
}
function 删除开始场景() {
游戏名.removeMovieClip();
游戏开始.removeMovieClip();
游戏说明.removeMovieClip();
}
function 删除说明场景() {
规则.removeMovieClip();
说明.removeMovieClip();
游戏开始.removeMovieClip();
}
function 创建说明场景() {
var 内容 = 一只大狮子,一只小狮子,一只大老虎、一只小老虎、一只大花豹,+\n+一只小花豹要到河对面去,只有大动物和小老虎会划船,船每次只能乘+\n+两只动物。大动物之间互相吃不了,小动物之间互相吃不了,如果大动+\n+物不在同类的小动物就会被异类大动物吃掉。;
创建TXT_MC(this, 规则, 游戏规则, 230, 50, 150, false);
创建TXT_MC(this, 说明, 内容, 50, 100, 120, false);
创建TXT_MC(this, 游戏开始, 游戏开始, 250, 200, 100, true);
游戏开始.onPress = function() {
删除说明场景();
创建游戏场景();
};
}
function 创建TXT_MC(路径, 名称, 文本, 坐标X, 坐标Y, 大小, 框) {
var MC = 路径.createEmptyMovieClip(名称, 路径.getNextHighestDepth());
MC._x = 坐标X;
MC._y = 坐标Y;
MC._xscale = MC._yscale=大小;
var TXT = MC.createTextField(TXT, 0, 0, 0, 0, 0);
TXT.text = 文本;
TXT.selectable = false;
TXT.autoSize = true;
if (框 == true) {
MC.onRollOver = function() {
this.TXT.border = true;
this.onReleaseOutside = this.onRollOut=function () {
this.TXT.border = false;
};
};
}
return MC;
}
this.createEmptyMovieClip(遮照MC, this.getNextHighestDepth());
function 创建游戏场景() {
var 船上成员 = [];
var 左岸 = [大狮子, 小狮子, 大老虎, 小老虎, 大花豹, 小花豹];
this.createEmptyMovieClip(左岸MC, this.getNextHighestDepth());
创建河流();
this.createEmptyMovieClip(码头MC, this.getNextHighestDepth());
画方块(码头MC, 0, 348, 94, 50, true);
画方块(码头MC, 454, 348, 94, 50, true);
this.createEmptyMovieClip(提示MC, this.getNextHighestDepth());
左岸MC._y = 100;
左岸MC._x = 20;
for (var i = 0; i<左岸.length; i++) {
if (i%2 == 0) {
var MC = 创建TXT_MC(左岸MC, 左岸[i], 左岸[i], 0, 40*i, 100, true);
MC.名字 = MC._name;
MC.划船 = true;
MC.方位 = 左岸;
MC.大小 = 大;
} else {
var MC = 创建TXT_MC(左岸MC, 左岸[i], 左岸[i], 0, 40*i, 100, true);
MC.名字 = MC._name;
MC.划船 = false;
MC.方位 = 左岸;
MC.大小 = 小;
}
MC.onPress = function() {
if (船上成员.length == 2) {
提示信息(船上不能再乘座更多的动物了);
}
if (船上成员.length<2 && 船MC.行动 == false && this.方位 == 船MC.状态) {
this._visible = false;
this.方位 = 船上;
船上成员.push(this);
eval(船仓+船上成员.length).TXT.text = this.名字;
}
};
}
左岸MC[小老虎].划船 = true;
this.createEmptyMovieClip(船MC, this.getNextHighestDepth());
船MC._y = 360;
船MC._x = 100;
船MC.Y = 0;
船MC.状态 = 左岸;
船MC.行动 = false;
船MC.速度 = 20;
画船(船MC);
创建TXT_MC(船MC, TXT, ===>>, 40, -2, 100, false);
船MC.onPress = function() {
if (this.行动 == false && 是否能划船(船上成员) && 能否呆船上(船上成员) && 岸上(this.状态)) {
this.行动 = true;
船移动(this);
}
};
创建TXT_MC(this, 船仓1, , 船MC._x+35, 船MC._y-20, 100, true);
创建TXT_MC(this, 船仓2, , 船MC._x+35, 船MC._y-40, 100, true);
船仓1.onPress = function() {
if (船MC.状态 == 左岸) {
左岸MC[this.TXT.text]._visible = true;
左岸MC[this.TXT.text]._x = 0;
左岸MC[this.TXT.text].方位 = 左岸;
删除(船上成员, this.TXT.text);
this.TXT.text = 船仓2.TXT.text;
船仓2.TXT.text = ;
}
if (船MC.状态 == 右岸) {
左岸MC[this.TXT.text]._visible = true;
左岸MC[this.TXT.text]._x = 480;
左岸MC[this.TXT.text].方位 = 右岸;
删除(船上成员, this.TXT.text);
this.TXT.text = 船仓2.TXT.text;
船仓2.TXT.text = ;
var n = 0;
for (var i in 左岸MC) {
if (左岸MC[i].方位 == 右岸) {
n++;
if (n == 6) {
提示信息(地球已经不适合你居住+\n+快去上火星去吧!!);
创建结束画面();
return;
}
}
}
}
};
船仓2.onPress = function() {
if (船MC.状态 == 左岸) {
左岸MC[this.TXT.text]._visible = true;
左岸MC[this.TXT.text]._x = 0;
左岸MC[this.TXT.text].方位 = 左岸;
删除(船上成员, this.TXT.text);
this.TXT.text = 船仓2.TXT.text;
船仓2.TXT.text = ;
}
if (船MC.状态 == 右岸) {
左岸MC[this.TXT.text]._visible = true;
左岸MC[this.TXT.text]._x = 480;
左岸MC[this.TXT.text].方位 = 右岸;
删除(船上成员, this.TXT.text);
this.TXT.text = 船仓2.TXT.text;
船仓2.TXT.text = ;
}
};
返回开始();
}
function 画船(MC) {
MC.lineStyle(0, 0);
MC.moveTo(0, 0);
MC.lineTo(10, 15);
MC.lineTo(100, 15);
MC.lineTo(110, 0);
MC.lineTo(0, 0);
}
function 船移动(MC) {
MC.onEnterFrame = function() {
this._x += this.速度;
船仓1._x += this.速度;
船仓2._x += this.速度;
this.状态 = 航行;
if (this._x>=340) {
this.行动 = false;
this.速度 *= -1;
this.TXT.TXT.text = <<===;
this.状态 = 右岸;
delete this.onEnterFrame;
}
if (this._x<=100) {
this.行动 = false;
this.速度 *= -1;
this.TXT.TXT.text = ===>>;
this.状态 = 左岸;
delete this.onEnterFrame;
}
};
}
function 是否能划船(数组) {
for (var i = 0; i<数组.length; i++) {
if (数组[i].划船 == true) {
return true;
}
}
提示信息(这条船上没有能划船的动物);
return false;
}
function 能否呆船上(数组) {
if (数组.length == 2) {
var TXT0 = 数组[0].名字;
var TXT1 = 数组[1].名字;
if (数组[0].大小 == 数组[1].大小 || TXT0.substring(1, 3) == TXT1.substring(1, 3)) {
return true;
}
} else {
return true;
}
提示信息(船上的大动物会吃掉小动物);
return false;
}
function 岸上(岸) {
//这个算法不好`实在想不出其他的好算法
var 大数组 = new Array();
var 小数组 = new Array();
for (var i in 左岸MC) {
if (左岸MC[i].方位 == 岸) {
if (左岸MC[i].大小 == 大) {
大数组.push(左岸MC[i]._name.substring(1, 3));
}
if (左岸MC[i].大小 == 小) {
小数组.push(左岸MC[i]._name.substring(1, 3));
}
}
}
var 小记数 = 小数组.length;
var 大记数 = 大数组.length;
if (小记数<=0) {
return true;
}
if (大记数<=0) {
return true;
}
var 记数 = 0;
for (var i = 0; i<小记数; i++) {
var 对象 = 小数组[i];
for (var n = 0; n<大记数; n++) {
if (对象 == 大数组[n]) {
记数++;
break;
}
}
}
if (记数 == 小记数) {
return true;
} else {
提示信息(岸上的大动物会吃掉小动物);
return false;
}
}
function 删除(数组, 对象) {
for (var i = 0; i<数组.length; i++) {
if (数组[i].名字 == 对象) {
数组.splice(i, 1);
return true;
}
}
}
function 画方块(MC, X, Y, 宽, 高, 填充) {
if (填充 == true) {
MC.beginFill(0xFFFFFF, 100);
}
MC.lineStyle(0, 0);
MC.moveTo(X, Y);
MC.lineTo(X+宽, Y);
MC.lineTo(X+宽, 高+Y);
MC.lineTo(X, 高+Y);
MC.lineTo(X, Y);
MC.endFill();
}
function 创建河流() {
var 河水= ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
var MC = 创建TXT_MC(this, 河流, 河水, 0, 365, 100, false);
MC.X = 0;
MC.onEnterFrame = function() {
this._x += Math.cos(this.X)*1;
this.X += 0.1;
};
}
function 提示信息(内容) {
提示MC.clear();
画方块(提示MC, 180, 50, 200, 70);
提示MC.计时 = 0;
提示MC[提示].removeMovieClip();
提示MC.onEnterFrame = function() {
if (this.计时 == 0) {
this._visible = true;
创建TXT_MC(提示MC, 提示, 内容, 提示MC._x+190, 提示MC._y+70, 115, false);
} else if (this.计时>30) {
this._visible = false;
delete onEnterFrame;
}
this.计时++;
};
}
function 创建结束画面() {
左岸MC.removeMovieClip();
船MC.removeMovieClip();
}
function 返回开始() {
创建TXT_MC(_root, 开始, 重新+\n+开始, 490, 360, 100, true);
开始.onPress = function() {
loadMovie(_url, _root);
};
}
画方块(遮照MC, 0, 0, 550, 400, true);
_root.setMask(遮照MC);
画方块(this, 0, 0, 548, 398, false);
////////////////////////////////////////////////////////////
var 菜单 = new ContextMenu();
菜单.hideBuiltInItems();
var QQ = new ContextMenuItem(QQ:31559783, 实行函数);
QQ.separatorBefore = true;
菜单.customItems.push(QQ);
this.menu = 菜单;
function 实行函数() {
}

教程结束,以上就是Flash AS代码实现智力过河小游戏,希望大家喜欢本教程!

相关文章

  • flash cs6鼠标跟随效果实现代码分享

    flash cs6想要实现鼠标跟随效果?该怎么制作呢?今天我们就来看看使用as2.0实现鼠标跟随效果的教程,需要的朋友可以参考下
    2019-05-19
  • Flash cs6怎么使用代码输入中英文文本?

    Flash cs6怎么使用代码输入中英文文本?Flash cs6中可以使用文字工具直接输入文本,也可以使用代码来输入文本,该怎么使用代码输入文本呢?请看下文详细的教程,需要的朋友
    2018-03-11
  • flash as3.0怎么定义抽象类和抽象?

    flash as3.0抽象类怎么定义? as3.0中有很多抽象类,该怎么定义抽象类和抽象方法呢?下面我们就来看看简单的例子,需要的朋友可以参考下http://www.jb51.net/softs/408402.
    2018-02-28
  • flash cs6中怎么使用ActionScript3.0?

    flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,该怎么使用呢?下面我们就来看看详细的教程,需要的朋友可以参考下
    2018-01-25
  • Flash中怎么实现鼠标点击决定图像位置?

    本教程给大家分享一个Flash小教程,教大家在Flash CS6中怎么实现鼠标点击决定图像位置?方法很简单,感兴趣的朋友欢迎前来一起分享学习
    2018-01-12
  • Flash中如何用代码将图片放在自己想要的舞台位置?

    本教程教程序员之家的ActionScript教程学习者在Flash中如何用代码将图片放在自己想要的舞台位置,教程讲解的详细,感兴趣的朋友欢迎前来分享学习
    2017-11-20
  • 在Flash CS6中使用with函数绘制背景图教程

    本教程教程序员之家的ActionScript教程学习者如何在Flash CS6中使用with函数绘制背景图?教程一步步讲解的挺详细,方法也不难,非常适合Flash新手入门学习
    2017-11-18
  • Flash怎么设置元件坐标?flash使用代码设置元件的坐标的教程

    Flash怎么设置元件坐标?flash中导如的元件需要添加坐标,该怎么定位元件坐标呢?下面我们就来看看flash使用代码设置元件的坐标的教程,需要的朋友可以参考下
    2017-10-11
  • Flash怎么制作来回摇摆的花朵的动画?

    Flash怎么制作来回摇摆的花朵的动画?Flash中想要给花朵制作一段摇摆的动画效果,该怎么制作呢?下面我们就来看看详细的教程,很简单,需要的朋友可以参考下
    2017-05-23
  • Flash怎么制作流动七彩色的文字?

    Flash怎么制作流动七彩色的文字?想要让文字动起来,该怎么使用flash给文字制作一个流动七彩色的动画呢?下面我们就来看看详细的教程,需要的朋友可以参考下
    2017-04-23

最新评论

?


http://www.vxiaotou.com