国产乱视频网站_久久亚洲一区二区三区四区_免费高清一级毛片_国产精品电影_国产精品乱码一区二区三区_美女天堂网

PS設計教程網歡迎你!

Flash AS實例:智力過河小游戲源代碼

文章來源于 閃吧,感謝作者 原始人 給我們帶來經精彩的文章!
設計教程/設計教程/Flash教程2009-10-14
本教程主要用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 實行函數() {
}

 

進入論壇參與討論:http://www.missyuan.com/viewthread.php?tid=424649

版權所有PS設計教程網公安備案:蘇公網安備 32058302001023號工信部備案:滬ICP備09005587號
aaa
主站蜘蛛池模板: 91视频网 | 视频一区在线播放 | 日本视频在线观看 | 成人久久久久久 | 欧美美女黄色网 | 日本不卡二区 | 成人vagaa免费观看视频 | 亚洲精品视频在线观看免费视频 | 久久久久亚洲一区二区三区 | 青草福利 | 蜜桃一本色道久久综合亚洲精品冫 | 国产精品久久久久久久久久久久冷 | 久久精品国产一区 | 国产成人精品无人区一区 | 国产精品一区二区免费视频 | 91视频观看 | 亚洲一区二区三区久久 | 国产污视频在线 | 国产精品久久久久久网站 | 久久国| 在线观看黄色网 | 欧美午夜理伦三级在线观看 | 激情久久久 | 国产精品视频资源 | 比利时xxxx性hd极品 | 在线天堂视频 | 日韩久久午夜一级啪啪 | 日韩一区二区中文字幕 | 欧美aaa一级片 | 色天天综合 | 亚洲视频一区二区三区 | 一区二区久久 | 国产第10页 | 综合五月激情 | 欧美日韩伊人 | 91精品国产综合久久久亚洲 | 欧美黄视频在线观看 | 久久综合久色欧美综合狠狠 | 日韩在线精品视频 | 天天干天天插 | 国产大胆自拍 |