亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 辦公 > Flash > 正文

Flash貪吃蛇游戲AS代碼翻譯

2020-07-17 13:19:05
字體:
來源:轉載
供稿:網友
今天翻譯了一段經典的貪吃蛇代碼,譯后感覺還有很多地方不太妥當,很多不妥的地方希望大家多指教
原文:
//--- Flash MX Snake Game 1Kb by Strille. Version 2.2, 746 bytes
//--- Paste this code on frame 1 and set scene size to 512x280 and Frame Rate to 16
//--- The code is not written with speed in mind, only small file size. Not that it is slow :-)
createTextField("t", 1, 1, 255, 511, 32); // create a text field to write score and instructions
t.text = "Snake Game/t-/tPress SPACE"; // show start text
beginFill(0xeeeeee); lineStyle(1); lineTo(511, 0); lineTo(511, 256); lineTo(0, 256); endFill(); // draw background with border
Key.addListener(t); // use an existing object as key listener (we don't waste bytes by creating a new object)
t.onKeyDown = function() { // define an anonymous method to execute when a key is pressed
c = Key.getCode()-37; // get key code (c is a variable used "locally" several times)
if (!(c>>2)) { // arrow keys pressed (c = 0, 1, 2 or 3)
if (c != q[0]) // only add to the queue if it is a new direction
q.unshift(c);
return; // save the turn in the queue and exit method
}
// SPACE or another key other than an arrow key has been pressed
x = 32*8 32*520; // snake start pos (left and right side of can be viewed as x and y coord
q = []; // a queue to store key presses (so that x number of key presses during one frame are spread over x number of frames)
m = []; // create an array to store food pos and snake
createEmptyMovieClip("s", w=0); // create MC to store the snake and the food MC and reset snake counter(w)
e = 2*(m[x-520] = 2*(r=1)); // set erase counter (e) to 4, set current direction (r) to up (1) and set food on the position the snake will be over the first time to place food
onEnterFrame = function () { // MAIN function
c = q.pop(); // pick the next turn in the queue (may be undefined if queue is empty)
if (c%2 != r%2) // and check that it is not undefined and not a 180 degree turn (annoying to be able to turn into the snake with one key press)
if (c != undefined)
r = c; // change current direction to the new value
x = [-1, -65, 1, 65][r]*8; // move the snake to a new x position (-1 = left, -65 = up, 1 = right, 65 = down)
if (m[x] == 1 or !(xR0) or !(int(x/520) % 33)) { // GAME OVER if it is a snake block or outside the map on the next position
delete onEnterFrame; // quit looping main function
t.text = "/tGAME OVER!"; return; // type game over text and exit main
}
with(s.createEmptyMovieClip(w, w)) { // place a snake block (or food block the first loop)
beginFill(255<<16); // red food color first time
if (w ) // blue snake color the other times
beginFill(0x555588);
_x = xR0; _y = int(x/520)*8; // set snake block position
lineTo(-7, 0); lineTo(-7, -7); lineTo(0, -7); endFill(); // draw a square
}
m[x] = 1; // set current pos as "occupied" by a snake block
if (m[x] == 3) { // check if there is a food block on the new pos
t.text = "Score: " (w-(e-=5)-2)*2; // delay erase counter with 5 (the snake will grow 5 blocks each time), calculate and type score ( 10p for a food block)
do {} while (m[c = (s[0]._x = 8 random(64)*8) (s[0]._y = 8 random(32)*8)*65]); // pick a free spot to place the food, save that number, place the food MC
m[c] = 2; // set the position picked on the line above to 2
}
if (e) { // if not food MC (s[0]) then erase last snake MC and entry in array m
c = s[e]; // get last MC
delete m[c._x 65*c._y]; removeMovieClip(c); // delete the value in the array m and delete the MC
}
e ; // increase erase snake counter
}
}
翻譯:
//--- Flash MX 貪吃蛇游戲(1Kb) 制作Strille. 版本 2.2, 共計 746 字節
//--- 復制以下代碼在主場景的第一幀場景大小為 512x280 , FPS 16
createTextField("t", 1, 1, 255, 511, 32);
// create a text field to write score and instructions
// 創建一個文本框用于輸出成績和指示
t.text = "Snake Game/t-/tPress SPACE";
// 顯示開始信息
beginFill(0xeeeeee); lineStyle(1); lineTo(511, 0); lineTo(511, 256); lineTo(0, 256); endFill();
// 沿邊框繪制背景
Key.addListener(t);
// 使用一個已存在的Object 作鍵盤幀聽 (就樣就不用再創建新Obejct,從而節約了空間)
t.onKeyDown = function() {
// 當鍵盤按下后,去執行自定義的這個方法
c = Key.getCode()-37;
// 獲得按鍵的ASCII碼 (變量 c 每次獲取相對的ASCII碼)
if (!(c>>2)) {
// 方向鍵的表示 (c = 0, 1, 2 or 3)
if (c != q[0])
// 只將新的方向鍵存入隊列 q
q.unshift(c);
return;
// 在隊列中保存,并結束該方法(函數)
}
// 空格或其它鍵不同于按下的方向鍵
x = 32*8 32*520;
// 蛇的起點坐標( 左邊 右邊:可被視為 x、y 坐標)
q = [];
// 用于存儲按鍵的隊列(因此改變在一幀中的X坐標對于所有幀中的X坐標都起作用)
m = [];
// 創建一個數組用于存儲食物的坐標和蛇
createEmptyMovieClip("s", w=0);
// 創建一個空影片用于存儲蛇和食物的影片剪輯,并重置蛇的計數器(w)
e = 2*(m[x-520] = 2*(r=1));
// 設置擦除計數器(e) to 4, 設置當前方向(r)為向上(1),當蛇經過食物后立即設置食物位置為當前設置的位置
onEnterFrame = function () {
// 主函數
c = q.pop();
// 在隊列中提取出下一輪變換(當隊列為空時,提取數是undefined的)
if (c%2 != r%2)
// 檢查其不屬于undefined和180度旋轉(避免任意按下一個鍵后就改變蛇的方向)
if (c != undefined)
r = c;
// 改變當前方向為新的方向
x = [-1, -65, 1, 65][r]*8;
// 移動蛇到一個新的X位置 (-1 = left, -65 = up, 1 = right, 65 = down)
if (m[x] == 1 or !(xR0) or !(int(x/520) % 33)) {
// 如果新的位置在蛇身上或出了邊界則 GAME OVER
delete onEnterFrame;
// 退出主循環函數
t.text = "/tGAME OVER!"; return;
// 輸出 GAME OVER! 并退出主程序
}
with(s.createEmptyMovieClip(w, w)) {
// 放置蛇身 (第一次循環時用于放置食物)
beginFill(255<<16);
// 首先將食物設為紅色
if (w ) // blue snake color the other times
beginFill(0x555588);
_x = xR0; _y = int(x/520)*8;
// 設置蛇身的位置
lineTo(-7, 0); lineTo(-7, -7); lineTo(0, -7); endFill();
// 繪制一個方形
}
m[x] = 1;
// 設置當前位置為"已占用"區作為蛇身
if (m[x] == 3) {
// 檢查是否有食物在新的位置上
t.text = "Score: " (w-(e-=5)-2)*2;
// 延遲擦除計數器5(蛇身每次增長5), 計算并輸出分數 (一個食物加10分)
do {} while (m[c = (s[0]._x = 8 random(64)*8) (s[0]._y = 8 random(32)*8)*65]);
// 尋找一個空位置放置點, 并存儲該數值, 并設置食物的影片剪輯
m[c] = 2;
//設置選出的位置為為大于2的線路上
}
if (e) {
// if not food MC (s[0]) then erase last snake MC and entry in array m
c = s[e];
// 獲得最后一個影片剪輯
delete m[c._x 65*c._y]; removeMovieClip(c);
// 刪除數組 m 中該元素的值并刪除影片剪輯
}
e ;
// 將蛇的擦除計數器加一
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97在线日本国产| 久热精品视频在线免费观看| 日韩美女在线观看一区| 日韩高清电影免费观看完整版| 国产在线视频2019最新视频| 国产91免费观看| 91香蕉国产在线观看| 91av在线影院| 国产精品爽爽ⅴa在线观看| 国产精品欧美一区二区三区奶水| 久久久999精品视频| 91精品国产91久久久久久最新| 精品人伦一区二区三区蜜桃网站| 91免费在线视频| 伊人久久久久久久久久久| 日韩电影在线观看永久视频免费网站| 亚洲另类图片色| 中文字幕亚洲欧美日韩2019| 欧美一乱一性一交一视频| 国产精品亚洲美女av网站| 亚州欧美日韩中文视频| 欧美交受高潮1| 欧美麻豆久久久久久中文| 亚洲国产日韩一区| 91国产精品视频在线| 操日韩av在线电影| 亚洲色图国产精品| 国产91ⅴ在线精品免费观看| 91久久国产精品91久久性色| 日韩亚洲国产中文字幕| 91久久精品美女高潮| 欧美怡春院一区二区三区| 国产亚洲欧美一区| 欧美裸体xxxx极品少妇软件| 日韩国产中文字幕| 久久久精品一区二区| 亚洲人成电影在线| 亚洲一区二区精品| 欧美国产视频日韩| 亚洲国产日韩精品在线| 色中色综合影院手机版在线观看| 国产亚洲精品久久久久久| 国产成人综合精品在线| 色婷婷综合久久久久| 久久久久亚洲精品成人网小说| 欧美www在线| 日韩日本欧美亚洲| 久久国产精品99国产精| 97高清免费视频| 日韩欧美综合在线视频| 精品美女久久久久久免费| 日韩av一区在线| 亚洲国产一区二区三区在线观看| 亚洲天堂成人在线| 亚洲第一网站男人都懂| 欧美午夜片欧美片在线观看| 日韩精品视频中文在线观看| 亚洲自拍小视频| 国产精品久久久久影院日本| 国产97人人超碰caoprom| 在线观看国产成人av片| 欧美午夜精品久久久久久人妖| 91精品成人久久| 亚洲久久久久久久久久久| 永久555www成人免费| 欧美情侣性视频| 久久久久久综合网天天| 亚洲第一综合天堂另类专| 欧美成人一区二区三区电影| 91在线国产电影| 久久青草精品视频免费观看| 国产精品久久久久国产a级| 草民午夜欧美限制a级福利片| 国产精品极品美女在线观看免费| 欧美精品久久久久久久久| 国产精品福利小视频| 国产精品美女久久久免费| 久久99国产综合精品女同| 亚洲精品电影在线观看| 在线视频精品一| 日韩美女免费线视频| 久久久久一本一区二区青青蜜月| 精品国产一区二区三区久久| 2025国产精品视频| 国产精品久久久久久一区二区| 4438全国成人免费| 日韩麻豆第一页| 国产精品1区2区在线观看| 狠狠色狠狠色综合日日小说| 久久九九免费视频| 国产精品免费一区| 亚洲三级 欧美三级| 亚洲视频在线观看免费| 国产精品草莓在线免费观看| 国产精品成人一区二区三区吃奶| 日韩欧美成人精品| 亚洲3p在线观看| 97免费在线视频| 一本色道久久88综合亚洲精品ⅰ| 国产美女久久精品香蕉69| 成人中心免费视频| 欧美电影免费观看网站| 一个人看的www欧美| 欧美成人手机在线| 亚洲欧美日韩综合| 欧美成人精品h版在线观看| 欧美专区在线播放| 欧美亚洲另类在线| 欧美又大又粗又长| 一本一本久久a久久精品综合小说| 国模吧一区二区三区| 黑人巨大精品欧美一区二区| 国产欧美va欧美va香蕉在| 国产精品久久久久久久久久99| 欧美日韩国产精品专区| 午夜精品福利在线观看| 欧美在线性爱视频| 91精品国产自产在线老师啪| 国模精品视频一区二区三区| 欧美精品在线观看91| 中文字幕精品国产| 亚洲一级黄色片| 亚洲精品日产aⅴ| 成人av在线天堂| 亚洲黄色在线观看| 最新91在线视频| 国内精品免费午夜毛片| 久久久久久久久久国产精品| 97久久精品人人澡人人爽缅北| 国产在线播放91| 久久精品电影一区二区| 亚洲国产美女精品久久久久∴| 亚洲欧美中文日韩在线v日本| 欧美高跟鞋交xxxxxhd| 国产日韩在线播放| 久久久久国产精品www| 欧美激情在线播放| 色综合伊人色综合网站| 久久久久久国产精品| 高清视频欧美一级| 国产啪精品视频网站| 日韩有码片在线观看| 久久精品中文字幕一区| 久久精品美女视频网站| 欧美日韩亚洲一区二区| 日韩美女免费视频| 9.1国产丝袜在线观看| 原创国产精品91| 亚洲男人的天堂在线| 日韩欧美国产网站| 日韩成人在线视频观看| 亚洲欧美精品一区| 日日骚av一区| 97国产真实伦对白精彩视频8| 国产亚洲精品综合一区91| 日韩av影片在线观看| 日本精品一区二区三区在线| xvideos国产精品| 欧美日韩免费观看中文| 日韩在线观看av| 亚洲一区二区三| 91超碰中文字幕久久精品| 欧美成人免费全部| 亚洲午夜av电影|