如何制作flash游戏?
//-Flash MX贪吃蛇游戏(1Kb)制作Strille。版本2.2,共746字节。
//-复制下面的代码。主场景的第一帧,场景大小为512x280,fps为16。
createTextField("t ",1,1,255,511,32);
//创建一个文本字段来写分数和说明
//创建一个文本框来输出成绩和说明。
T.text = "单击开始";
//显示开始信息
begin fill(0x eeeeee);line style(1);lineTo(511,0);lineTo(511,256);lineTo(0,256);end fill();
//沿边框绘制背景
key . addlistener(t);
//使用现有的对象作为键盘框架来监听(就像那样,不需要创建新的Obejct,从而节省空间)
t.onKeyDown = function() {
//当按下键盘时,执行自定义的方法。
c = key . get code()-37;
//获取键的ASCII码(变量c每次都获取相对的ASCII码)
如果(!(c & gt& gt2)) {
//方向键的表示(c = 0,1,2或3)
如果(c!= q[0])
//在队列q中只存储新的方向键。
q . un shift(c);
返回;
//保存在队列中,结束方法(函数)。
}
//空格或其他键与按下的箭头键不同。
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)设置为4,将当前方向(R)设置为向上(1),蛇经过食物后立即将食物位置设置为当前设置的位置。
onEnterFrame = function () {
//主函数
c = q . pop();
//从队列中提取下一轮转换(当队列为空时,提取数未定义)
if (c%10!= r%10)
//检查不属于未定义和180度旋转(避免随意按一个键后改变蛇的方向)。
如果(c!=未定义)
r = c;
//将当前方向更改为新方向。
x += [-1,-65,1,65][r]* 8;
//将蛇移动到新的X位置(-1 =左,-65 =上,1 =右,65 =下)。
if (m[x] == 1或者!(x%520)或者!(int(x/520) % 33)) {
//如果新位置在蛇的身体上或在边界之外,游戏结束
删除onEnterFrame
//退出主循环功能
t.text += "不!你输了”;返回;
//输出游戏结束!并退出主程序。
}
with(s.createEmptyMovieClip(w,w)) {
//放置蛇(用于在第一个循环中放置食物)
begin fill(255 & lt;& lt16);
//首先将食物设置为红色。
if (w++) //蓝色蛇色其他时间
begin fill(0x 555588);
_ x = x % 520_ y = int(x/520)* 8;
//设置蛇的位置。
lineTo(0,-7);lineTo(-7,-7);lineTo(-7,0);lineTo(0,0);
//画一个正方形。
}
m[x]+= 1;
//将当前位置设置为“被占领”区域作为蛇体。
if (m[x] == 3) {
//检查新位置是否有食物。
T.text = "你吃的食物数量:"+(w-(e-= 5)-2)* 0.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的行。
}
如果(e) {
//如果不是food MC (s[0]),则擦除最后一个snake MC和数组m中的条目
c = s[e];
//获取最后一个电影剪辑
删除m[c . _ x+65 * c . _ y];remove movie clip(c);
//删除数组M中该元素的值,删除影片剪辑。
}
e++;
//将snake的擦除计数器加1。
}
}