手机
当前位置:查字典教程网 >网页设计 >Flash教程 >Flash AS代码实现智力过河小游戏
Flash AS代码实现智力过河小游戏
摘要:本教本教程主要用FlashAS来编写一个智力过河小游戏,全部使用AS代码来实现,教程比较基础,转发过来,希望对大家有所帮助。游戏规则:一只大...

本教本教程主要用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 AS代码实现智力过河小游戏】相关文章:

Flash AS3.0教你射击类游戏的制作

Flash AS3.0 实例教程 喷泉动画特效

Flash AS实现的蝌蚪摆尾动画的教程

Flash用AS2代码制作图片循环效果

Flash AS3代码基础教程:物理基础之速度向量

Flash教程:用AS3代码表现倾斜角与斜率

Flash AS 实例进阶 as打字效果

Flash AS打造转动3D小方块视觉特效

Flash AS教程:图片环绕旋转效

用flash实现手写输入方法

精品推荐
分类导航