极光下载站 - 打造齐全的绿色软件家园

极光下载站

当前位置: 首页 网络媒体 FLASH Flash MX 编程深层次应用-Flash射击游戏(6)

Flash MX 编程深层次应用-Flash射击游戏(6)

时间:2006/7/22 15:25:30 作者:佚名 人气:40

6.2 游戏制作(前台)(5)

    

6.2.6  游戏的初始化程序

至此,敌人部分基本上讲完,下面讲讲游戏的初始化。也许大家会问,怎么,游戏快讲完了才讲初始化啊,游戏初始化不是应该在游戏一开始就对各种物体、目标、声音效果、得分进行初始设置吗,为什么不在本章的前面部分讲啊?其实道理很简单,这么复杂的游戏,如果一开始就讲初始化,读者根本就不知这些初始化语句有何用处。还不如等游戏的具体内容讲得差不多了再列出初始化程序,这样会更加容易理解这些代码的实际含义。具体程序如下:

//设置是否为不死版

nodead = false;

//我的得分

your_score = 0;

//游戏正式开始设置游戏画面的长宽,还有我的飞机数

play_width = 300;

play_height = 400;

//设置飞船移动的4个边界

play_left = 5;

play_right = 295;

play_top = 25;

play_bottom = 395;

my_plane_number = 3;

for (i=5;i>=my_plane_number;i--) {

  eval("my_plane_num_"+i)._visible = false;

}

//设置复制的影片数组

play_plane = new Array();

//我的生命值为50

my_blood = 50;

//我的射击声音

my_shot = new Sound();

my_shot.attachSound("my_plane_shot");

//背景循环音乐的声音

bgsound = new Sound();

bgsound.attachSound("loop");

bgsound.setVolume(80);

//得到令牌的声音

get_pai = new Sound();

get_pai.attachSound("get");

//我死的声音

my_dead = new Sound();

my_dead.attachSound("dead");

//大怪发出一个子弹的声音

big_enemy_one_sound = new Sound();

big_enemy_one_sound.attachSound("one_sound");

//大怪发出爆炸弹的声音

//big_enemy_bomb_bullet_sound = new Sound();

//big_enemy_bomb_bullet_sound.attachSound("bomb_bullet_sound");

//用数组存放3个函数值,精确到小数点后3

rad = Math.PI/180;

cs = new Array(360);

sn = new Array(360);

for (i=0; i<=359; i++) {

    cs[i] = Math.floor(Math.cos(i*rad)*1000)/1000;

    sn[i] = Math.floor(Math.sin(i*rad)*1000)/1000;

}

attachMovie("my_plane_bullet", "bullet", 1);

bullet._visible = false;

bullet_width = bullet._width;

bullet_height = bullet._height;

// 子弹的数目

powder = new Array(1,2,3,4);

max_bullet_powder = new Array(11,24,30,40,55);

bullet_level = 1;

my_powder = powder[0];

//max_bullet_num = max_bullet_powder[0]

max_bullet_num = 18;

// 子弹的层数,[1]用来表示我的子弹数,[4]用来表示敌人的散弹数

//[6]表示令牌数开始,[7]表示固定敌人发射的会跟踪的子弹开始位置。[8],[9]之间表示大怪的子弹数

//[11]表示,[13],[14]

deplicate = new Array(1,max_bullet_num,150,180,301,500,501,550,1800,1900, 2000,2100,2500,3000,3500);

// 子弹的X间距

bullet_x_between = 8;

// 子弹的Y间距

bullet_y_between = bullet_height+5;

//令牌的当前数

last_pai=0;

//固定智能敌人子弹数

ai_enemy_bullet = 0;

shot_lock = false;

now_bullet = 0;

my_plane._y = play_height - my_plane._height;

my_plane._x = play_width >>1;

bullet_angle = 90;

//散弹的子弹间隔角度与间距

angle_between = 20;

enemy_bullet_x_between = 20;

//敌人散弹每次发射的子弹数

enemy_powder = 3;

至此,游戏前台的主要驱动部分已经讲述完毕了,下面将讲述游戏如何与后台程序进行通信。


<
标签
分享到:

公众号