我在网上看到一个,,用代码写出来的,飞机游戏,,,,不需要画任何东西,,,甚至飞机模型都不用画,直接代码搞定,,现在我发上来给大家玩玩吧,,,不错的游戏哦,
原代码:
开始();
function 初始化数据() {
速度 = 20;
n = 0;
杀敌数 = 0;
总机数 = 3;
开 = false;
Mouse.hide();
_root.createEmptyMovieClip("飞机层", _root.getNextHighestDepth());
_root.createEmptyMovieClip("子弹层", _root.getNextHighestDepth());
_root.createEmptyMovieClip("敌机层", _root.getNextHighestDepth());
_root.createEmptyMovieClip("敌子弹层", _root.getNextHighestDepth());
_root.createEmptyMovieClip("数据层", _root.getNextHighestDepth());
_root.数据层.createTextField("杀敌数据", _root.数据层.getNextHighestDepth(), 220, 0, 100, 100);
_root.数据层.createTextField("主机数据", _root.数据层.getNextHighestDepth(), 0, 0, 100, 100);
_root.数据层.杀敌数据.selectable = false;
_root.数据层.主机数据.selectable = false;
_root.数据层.杀敌数据.text = "分数:"+杀敌数;
_root.数据层.主机数据.text = "机数:"+总机数;
}
//绘制飞机/////////////////////////////////
function 绘制飞机() {
var 临时飞机 = _root.飞机层.createEmptyMovieClip("飞机", _root.飞机层.getNextHighestDepth());
临时飞机.beginFill(00, 100);
临时飞机.lineStyle(1, 00, 100);
临时飞机.moveTo(0, -7.7);
临时飞机.lineTo(10, 10);
临时飞机.lineTo(0, 6);
临时飞机.lineTo(-10, 10);
临时飞机.moveTo(0, -7.7);
临时飞机.endFill();
临时飞机._alpha = 0;
临时飞机._x = _root._xmouse;
临时飞机._y = _root._ymouse;
临时飞机.onEnterFrame = function() {
临时飞机._alpha += 5;
if (临时飞机._alpha>=100) {
delete 临时飞机.onEnterFrame;
}
};
}
function 绘制敌子弹(X, Y, 终点X, 终点Y) {
var 临时敌子弹 = _root.敌子弹层.createEmptyMovieClip("敌子弹"+_root.敌子弹层.getNextHighestDepth(), _root.敌子弹层.getNextHighestDepth());
临时敌子弹._x = X;
临时敌子弹._y = Y;
临时敌子弹.lineStyle(3, 0xFF0000, 100);
临时敌子弹.moveTo(0, 0);
临时敌子弹.lineTo(1, 1);
临时敌子弹.endFill();
var fx = 终点X;
var fy = 终点Y;
var 角度 = Math.atan2(fy-临时敌子弹._y, fx-临时敌子弹._x);
临时敌子弹.onEnterFrame = function() {
临时敌子弹._x += 3*Math.cos(角度);
临时敌子弹._y += 3*Math.sin(角度);
if (临时敌子弹._y<=0) {
临时敌子弹.removeMovieClip();
delete 临时敌子弹.onEnterFrame;
}
if (临时敌子弹._y>=450) {
临时敌子弹.removeMovieClip();
delete 临时敌子弹.onEnterFrame;
}
if (临时敌子弹._x>=300) {
临时敌子弹.removeMovieClip();
delete 临时敌子弹.onEnterFrame;
}
if (临时敌子弹._x<=0) {
临时敌子弹.removeMovieClip();
delete 临时敌子弹.onEnterFrame;
}
for (var i in _root.敌子弹层) {
var 临时敌子弹 = _root.敌子弹层
;
if (_root.飞机层.飞机.hitTest(临时敌子弹) and _root.飞机层.飞机._alpha>=100) {
_root.飞机层.飞机.removeMovieClip();
if (总机数>0) {
总机数--;
_root.数据层.主机数据.text = "机数:"+总机数;
绘制飞机();
主机 = _root.飞机层.飞机;
}
临时敌子弹.removeMovieClip();
delete 临时敌子弹.onEnterFrame;
}
}
};
}
function 绘制敌机() {
var 临时敌机 = _root.敌机层.createEmptyMovieClip("敌机"+_root.敌机层.getNextHighestDepth(), _root.敌机层.getNextHighestDepth());
临时敌机.beginFill(00, 100);
临时敌机.lineStyle(1, 00, 100);
临时敌机.moveTo(0, 0);
临时敌机.lineTo(20, 0);
临时敌机.lineTo(10, 15);
临时敌机.lineTo(0, 0);
临时敌机.endFill();
临时敌机._x = random(200)+50;
临时敌机._y = -10;
var 跑 = 0;
临时敌机.onEnterFrame = function() {
临时敌机._y += 3;
if (random(150) == 0) {
跑 = 0;
}
if (random(150) == 1) {
跑 = 1;
}
if (random(150) == 2) {
跑 = 2;
}
if (跑 == 1) {
临时敌机._x += 2;
}
if (跑 == 2) {
临时敌机._x -= 2;
}
if (random(50) == 0) {
绘制敌子弹(临时敌机._x, 临时敌机._y, 主机._x, 主机._y);
}
if (临时敌机._y>=450) {
临时敌机.removeMovieClip();
delete 临时敌机.onEnterFrame;
}
for (var i in _root.子弹层) {
var 临时子弹 = _root.子弹层;
if (临时敌机.hitTest(临时子弹)) {
临时敌机.removeMovieClip();
临时子弹.removeMovieClip();
delete 临时敌机.onEnterFrame;
杀敌数 += 100;
_root.数据层.杀敌数据.text = "分数:"+杀敌数;
}
}
};
}
绘制飞机();
主机 = _root.飞机层.飞机;
function 绘制子弹() {
var 临时子弹 = _root.子弹层.createEmptyMovieClip("子弹"+_root.子弹层.getNextHighestDepth(), _root.子弹层.getNextHighestDepth());
//trace("子弹:"+"子弹"+_root.子弹层.getNextHighestDepth()+" 深度:"+_root.子弹层.getNextHighestDepth());
临时子弹._x = 主机._x-5;
临时子弹._y = 主机._y-20;
临时子弹.lineStyle(1, 0xFFFF00, 100);
临时子弹.beginFill(0xFFFF00, 100);
临时子弹.lineStyle(1, 00, 100);
临时子弹.moveTo(5, 5);
临时子弹.lineTo(10, 10);
临时子弹.lineTo(0, 10);
临时子弹.lineTo(5, 5);
临时子弹.endFill();
临时子弹.onEnterFrame = function() {
临时子弹._y -= 10;
if (临时子弹._y<=-10) {
临时子弹.removeMovieClip();
delete 临时子弹.onEnterFrame;
//trace("删除"+临时子弹);
}
};
}
///////////////////////////////////////////
_root.onEnterFrame = function() {
主机._x -= (主机._x-(_root._xmouse))/速度;
主机._y -= (主机._y-(_root._ymouse))/速度;
if (开 == true and n++%5 == 0 and 主机.enabled == true) {
绘制子弹();
}
if (random(20) == 6 and 主机.enabled == true) {
绘制敌机();
}
if (总机数<2) {
for (var i in _root) {
_root.removeMovieClip();
}
delete 总机数;
结束();
}
};
_root.onMouseDown = function() {
开 = true;
};
_root.onMouseUp = function() {
开 = false;
};
//////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
function 开始() {
_root.createEmptyMovieClip("开始层", _root.getNextHighestDepth());
var 开始TXT = _root.开始层.createTextField("开始TXT", _root.开始层.getNextHighestDepth(), 120, 200, 55, 20);
开始TXT.selectable = false;
开始TXT.text = "游戏开始";
开始层.onRelease = function() {
初始化数据();
绘制飞机();
主机 = _root.飞机层.飞机;
开始层.removeMovieClip();
};
}
function 结束() {
Mouse.show();
_root.createEmptyMovieClip("结束层", _root.getNextHighestDepth());
_root.createEmptyMovieClip("开始层", _root.getNextHighestDepth());
var 结束TXT = _root.结束层.createTextField("结束TXT", _root.结束层.getNextHighestDepth(), 120, 150, 55, 20);
var 开始TXT = _root.开始层.createTextField("开始TXT", _root.开始层.getNextHighestDepth(), 120, 200, 55, 20);
开始TXT.selectable = false;
结束TXT.selectable = false;
结束TXT.text = "游戏结束";
开始TXT.text = "重新开始";
开始层.onRelease = function() {
初始化数据();
绘制飞机();
主机 = _root.飞机层.飞机;
结束层.removeMovieClip();
开始层.removeMovieClip();
};
}