资讯文章
应用
游戏
首页 应用 游戏 资讯

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

来源:网络 2006/7/22 16:25:57
6.3 游戏后台通信(1)

    

6.3.1  游戏积分排行榜

一个完整的游戏都有一个排行榜,本游戏也不例外。排行榜的内容实际上就是将玩家的得分及姓名等相应内容向后台程序发送,然后由后台程序进行处理,再将处理完的结果返回Flash中。下面先看看游戏的前台部分,如图6-22所示。

6-22

Ö           1帧:取得积分榜

程序如下:

_root.input_name._visible = false;

_root.now_over._visible = true;

stopDrag();

Mouse.show();

stopAllSounds();

//这里的url设为本地的,可以根据需要改正真实的值

url = "http://localhost/";

_root.now_url = url+"./score.asp?buf="+getTimer();

_root.reply_time = 15;

dongua_load_var = new LoadVars();

dongua_load_var.sendAndLoad(_root.now_url, dongua_load_var, "POST");

function time_out() {

    clearInterval(get_first);

    gotoAndPlay("disp_all_fen");

    removeMovieClip(_root["dongua"]);

}

get_first = setInterval(time_out, _root.reply_time*1000);

_root.createEmptyMovieClip("dongua", 1);

_root.dongua.onEnterFrame = function() {

    if (dongua_load_var.loaded) {

             //如果已经有返回就不再计时

             clearInterval(get_first);

             _root.now_over._visible = false;

             //如果收到返回值,就检查是否比最小值大

             if (Number(_root.dongua_load_var.lowest_score)<_root.your_score) {

                      // 得分高于最低分,显示输入框,要求输入用户名

                      _root.input_name._visible = true;

             } else {

                      gotoAndPlay("disp_all_fen");

             }

             removeMovieClip(_root["dongua"]);

             this.stop();

    }

};

stop();

这里的input_name是一个姓名输入窗口,只有当我的得分高于最低分时才出现。

Ö           2帧:等待数据传递

其标号是wait_lowest,主要用于等待后台传数据过来,程序如下:

stopDrag();

Mouse.show();

Ö           3帧:与第2帧一起形成等待:

gotoAndPlay("wait_lowest");

Ö           4帧:标号是disp_all_fen,将排行榜中的得分显示在屏幕上

程序如下:

stopDrag();

Mouse.show();

//显示排名名单

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

    _root["name"+i] = _root.dongua_load_var["name"+i];

    _root["score"+i] = _root.dongua_load_var["score"+i];

}

if (_root.dongua_load_var.loaded) {

    _root.now_over._visible = false;

} else {

    stopAllSounds();

   //跳到游戏的最开始位置

    gotoAndPlay("game_menu", 1);

}

removeMovieClip(_root["dongua"]);

//显示排行榜的时候就不要再显示用户名输入框

_root.input_name._visible = false;

Ö           5帧:延迟程序

//显示排行榜10秒钟

stopDrag();

Mouse.show();

begin = getTimer();

reply_time = 10;

Ö           6帧:标号是fen_disp_loop,让积分显示保留秒

程序如下:

stopDrag();

Mouse.show();

now = getTimer();

if (now-begin>1000*reply_time) {

    stopAllSounds ();

    gotoAndPlay ("game_menu", 1);

}

Ö           7帧:与第6帧一起完成画面停留10

gotoAndPlay("fen_disp_loop");

Ö           10帧:标号是process

程序如下:

stopDrag();

Mouse.show();

begin = getTimer();

reply_time = 15;

Ö           11帧:标号是change_paiming

程序如下:

stopDrag();

Mouse.show();

_root.now_over._visible = false;

if (_root.dongua_load_var.loaded) {

  tellTarget (_root) {

    gotoAndPlay ("gameover", "disp_all_fen");

  }

}

now = getTimer();

if (now-begin>1000*reply_time) {

    _root.input_name.gotoAndStop(1);

    gotoAndPlay ("game_menu", 1);

}

Ö           12帧:与第11帧形成循环

gotoAndPlay("change_paiming");

其实第10帧到12帧的内容是当用户在输入用户名之后,发出一个修改后台排行榜积分的请求,于是程序便需要在这里等待结果了。


<
网友留言

跟帖评论

查看更多评论
最新精选推荐

推荐


卡利戈猎人官方正版

格斗之王3手游

土豪ol最新版本

忍将游戏

屠龙杀九游版

uc浏览器手机版

仁和会计课堂最新版本

极品漫画社app破解版

vsco2019破解版

网易云音乐最新版