永发信息网

求高手,用flash cs5 AS3.0脚本做一个贪吃蛇的游戏,不需要太难,能运行即可,急用,跪求……

答案:2  悬赏:10  手机版
解决时间 2021-11-17 02:26
求高手,用flash cs5 AS3.0脚本做一个贪吃蛇的游戏,不需要太难,能运行即可,急用,跪求……
最佳答案
package {
import flash.display.Sprite;
import flash.events.*;
import flash.text.*;
import flash.utils.Timer;
import flash.display.StageScaleMode;
public class Main extends Sprite {
var frame:Sprite, randombrick:Sprite;
var txt_level:TextField = new TextField(), txt_score:TextField = new TextField(), txt_explain:TextField = new TextField(), txt_winlose:TextField = new TextField(), txt_author:TextField = new TextField();
var tf1:TextFormat = new TextFormat(), tf2:TextFormat = new TextFormat();
var xx:int, yy:int;
var rank:uint = 1;
var time:Timer;
var p_eat:Boolean = true, p_start:Boolean = true;
var body:uint = 5;
var arr:Array = new Array();
public function Main(){
BASIC();
stage.addEventListener(Event.ENTER_FRAME, TFEVENT);
stage.addEventListener(KeyboardEvent.KEY_DOWN, START);
stage.addEventListener(KeyboardEvent.KEY_DOWN, diction);
function START(e:KeyboardEvent):void {
if (e.keyCode == 13 && p_start == true){
p_start = false;
xx = -20;
yy = 0;
body = 5;
initarr();
txt_winlose.text = "";
time = new Timer(((rank < 5) ? (400 - rank * 50) : (200 - rank * 10)));
time.start();
time.addEventListener(TimerEvent.TIMER, MOVE);
stage.addEventListener(Event.ENTER_FRAME, RANDOMBRICK);
stage.addEventListener(Event.ENTER_FRAME, WINLOSE);
}
}
}
private function WINLOSE(et:Event):void {
if (arr.length == ((rank < 10) ? (20) : (15))){
rank += 1;
WINANDLOSE();
txt_winlose.text = "WIN";
}
if (arr.length != 0){
if (arr[0].x < 0 || arr[0].x > 390 || arr[0].y < 0 || arr[0].y > 390){
WINANDLOSE();
txt_winlose.text = "LOSE";
}
if (arr.length != 0){
for (var a:uint = 2; a < arr.length; a++){
if (arr[0].hitTestObject(arr[a])){
WINANDLOSE();
txt_winlose.text = "LOSE";
}
}
}
}
function WINANDLOSE(){
p_start = true;
for (var m:uint = 0; m < arr.length; m++){
removeChild(arr[m]);
}
arr.splice(0, arr.length - 1);
arr.shift();
time.removeEventListener(TimerEvent.TIMER, MOVE);
stage.removeEventListener(Event.ENTER_FRAME, RANDOMBRICK);
stage.removeEventListener(Event.ENTER_FRAME, WINLOSE);
}
}
private function initarr(){ //初始化数组
for (var i:uint = 0; i < body; i++){
var brick:Sprite = BRICK();
arr.push(brick);
addChild(arr[i]);
arr[i].x = i * 20 + 200 + 3;
arr[i].y = 200 + 3;
}
}
private function MOVE(evt:TimerEvent):void {
var temp:Array = arr.splice(arr.length - 1, 1);
temp[0].x = arr[0].x + xx;
temp[0].y = arr[0].y + yy;
arr.unshift(temp[0]);
}
private function RANDOMBRICK(evt:Event):void {
if (p_eat == true){
p_eat = false;
randombrick = BRICK();
var dx:Number = Math.random() * 400;
var dy:Number = Math.random() * 400;
for (var e:uint = 0; e < 20; e++){
if (dx >= 20 * e && dx <= 20 * (e + 1)){
randombrick.x = e * 20 + 3;
}
if (dy >= 20 * e && dy <= 20 * (e + 1)){
randombrick.y = e * 20 + 3;
}
}
addChild(randombrick);
randombrick.alpha=1;
}
if (arr[0].hitTestObject(randombrick)){
p_eat = true;
body += 1;
arr.unshift(randombrick);
randombrick.alpha = 0.5;
arr[0].x = arr[1].x + xx;
arr[0].y = arr[1].y + yy;
}
}
private function FRAME():Sprite { //绘制方格
frame = new Sprite();
for (var m:uint = 0; m <= 20; m++){
frame.graphics.moveTo(0, m * 20);
frame.graphics.lineStyle(1, 0x0000ff);
frame.graphics.lineTo(400, m * 20);
}
for (var n:uint = 0; n <= 20; n++){
frame.graphics.moveTo(n * 20, 0);
frame.graphics.lineStyle(1, 0x0000ff);
frame.graphics.lineTo(n * 20, 400);
}
return frame;
}
private function TF(){
tf1.size = 14;
tf1.color = 0xffffff;
tf1.bold = true;
tf2.size = 22;
tf2.color = 0xffff00;
tf2.bold = true;
tf2.align = TextFormatAlign.CENTER;
}
private function TFEVENT(event:Event):void {
TF();
txt_explain.setTextFormat(tf1, 0, 7);
txt_explain.setTextFormat(tf1, 12, 17);
txt_explain.setTextFormat(tf2, 8, 10);
txt_explain.setTextFormat(tf2, 17, 19);
txt_level.text = "LEVEL:\n" + rank;
txt_level.setTextFormat(tf1, 0, 6);
txt_level.setTextFormat(tf2, 7, txt_level.length);
txt_score.text = "SCORE:\n" + (body - 5);
txt_score.setTextFormat(tf1, 0, 6);
txt_score.setTextFormat(tf2, 7, txt_score.length);
txt_winlose.setTextFormat(tf2);
txt_author.setTextFormat(tf1);
}
private function BRICK():Sprite { //画蛇身体
var panel:Sprite = new Sprite();
panel.graphics.lineStyle(1, 0x00ffff);
panel.graphics.beginFill(0x00ff00);
panel.graphics.drawRect(0, 0, 18, 18);
panel.graphics.endFill();
panel.alpha = 0.5;
return panel;
}
private function diction(event:KeyboardEvent):void { //控制蛇头移动方向
switch (event.keyCode){
case 37:
xx = -20;
yy = 0;
break;
case 38:
xx = 0;
yy = -20;
break;
case 39:
xx = 20;
yy = 0;
break;
case 40:
xx = 0;
yy = 20;
break;
default:
break;
}
}
private function BASIC(){
stage.scaleMode = StageScaleMode.NO_SCALE; //屏幕不缩放
//加载方格
frame = FRAME();
addChild(frame);
frame.x = frame.y = 2;
//说明
txt_explain.text = "ENTER键:\n开始\n\n方向键:\n移动";
txt_winlose.text = "";
txt_level.text = "LEVEL:\n" + rank;
txt_score.text = "SCORE:\n" + (body - 5);
txt_author.text = "author:\n 给力^_^冬"
txt_explain.selectable = txt_winlose.selectable = txt_level.selectable = txt_score.selectable = txt_author.selectable = false;
txt_explain.x = txt_winlose.x = txt_level.x = txt_score.x = txt_author.x = 405;
txt_level.y = 20;
txt_score.y = 90;
txt_winlose.y = 160;
txt_explain.y = 210;
txt_author.y = 340;
txt_explain.background = txt_winlose.background = txt_level.background = txt_score.background = txt_author.background = true;
txt_explain.backgroundColor = txt_winlose.backgroundColor = txt_level.backgroundColor = txt_score.backgroundColor = txt_author.backgroundColor = 0x400080;
txt_explain.width = txt_winlose.width = txt_level.width = txt_score.width = txt_author.width = 90;
txt_explain.height = 105;
txt_winlose.height = 30;
txt_level.height = txt_score.height = txt_author.height = 50;
addChild(txt_explain);
addChild(txt_winlose);
addChild(txt_level);
addChild(txt_score);
addChild(txt_author);
}
}
}
我用的是as文件做的 代码不是放在帧上,希望对楼主有用
全部回答
实在没办法,就只能重新安装试试。也有可能是电脑系统不支持
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
靖边县恒博汽贸有限公司地址在哪,我要去那里
靖边县惠通利华商贸有限公司地址在什么地方,
360÷24的简便方法
朗动双闪按键不亮,但是双闪亮???求助大神
齐脖直发BOB头短发,经典百搭不过时,怎么剪
杭州富阳艾希园艺场我想知道这个在什么地方
帮妈妈端菜作文300字
给排水中De20的管指的是内径还是外径
求介绍一个做天津招标公司的
说给外婆的悄悄话
求 “婚色撩人,总裁教授跟我走”txt百度云
请问十八碗浏阳蒸菜为什么叫十八碗?
佩戴饰品的礼仪有哪些
建瓯阳光假日城的房产的小学生划片在城关哪所
CASIO手表背面JAPAN MOV'T CASED IN CHIN
推荐资讯
宜州好声音ktv地址在哪,我要去那里办事,
您好!您本月流量已告急,推荐您每天1元每月5
这是和情侣拍照吗
人们常用“黄河之水天上来,奔流到海不复回”
一个女生主动和你照相这代表什么?
有谁知道海贼王一个插曲,好像每次回忆怀念的
查询028——67727484是哪里的号码
76年的龙与82年的狗适含结婚吗
"反正也没有几个人会特地为了我查一下。"这句
用什么泡酒养生
《莲叶》古诗 诵读
为什么?语文给人感觉像艺术
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?