zoukankan      html  css  js  c++  java
  • 10:《地牢守卫者》代码分析:DataHighScores

      研究得分表类。   

    class DataHighScores extends Object config(HighScoreList);
    

       得分表继承自Object,在UnrealScript中。抽象的物件继承自OBject,具体的物件继承自Actor。

    同时还有一个关注的地方就是config(HighScoreList),这一项说明了存储的数值在HighScoreList.ini配置文件中,这个列表名是根据config(HighScoreList)定义的。

    而继承的目录应该是一下Src->Classes->AntGame

    [AntGame.DataHighScores],前者为程序的文件夹名,后者为得分名。

      正式进入该类研究。作为一个排名类,主要完成一些逻辑机制。而显示输出排名情况将会交给UI部分打理。那么排名逻辑应该提供哪些功能呢?

      1.首先应该能在配置标文件中存储得分数组列表,用一下方式定义将能存储该类型变量:

    struct HighScoreEntry
    {
      var int score;
      var string name;
    }; //分排名结构,有名字有成绩
    var config array<HighScoreEntry> HighScoresEntries;    //注意Config类型,这将能使变量存储在ini中
    

      这就是得分列表,应该有一系列的逻辑机制实现怎样竞分排名。

      

      2.应该有一种检验方法查看一个列表高分能否进入该排名列表里面。

    function IsWithinHighScore(HighScoreEntry entry)
    {
          local int it;
          for(it=0;it<HightScoreEntry.length;it++)
          {
                if(HighScoreEntry[it].score=<entry.score)
                return it;         //brilliant as linsanity
           }
           return -1;       //too small to insert
    }
    

      3.讲一个高分列表插进来

    function int AddToScore(HighScoreEntry Entry)
    {
          local int it;
          local int previouslength;
        local int InsertAt;
          previouslength=HighScoresEntries.length;
        InsertAt=-1;
        for(it=HightScoresEntries.length-1;it>-1;it--)
        {
            if(it==0||Entry.score<HighScoresEntries[it-1])
            {
              HighScoreEntries.addItem(it,entry);    //位置,结构
              InsertAt=it;  
              break;
            }
        }
        if(HighScoresEntries.length>previouslength)
        HighScoresEntries.Remove(HighScoresEntries.length-1,1);
        saveConfig();     //将数组变量存储
        return InsertAt;
    }
  • 相关阅读:
    Ext.Net 1.2.0_利用 Ext.Net 自定义 GridPanel Ajax 控件
    ASP.NET_0404_ASP.NET 重定向:页面传值
    程序设计_洗牌程序
    表单/验证表单——千万不要做一个只会拖控件、“照猫画虎”、copy/paste 程序员
    ASP.NET_0204_ASP.NET 重定向:如何将用户重定向到另一页
    Oracle 11g R1(11.1) Joins表连接
    隐藏 iframe 技术——Ajax 时代一个重要的环节
    Ext.Net 1.2.0_改变 Ext.Net.GridPanel 某行或某列的式样
    数据结构冒泡排序和直接插入排序
    XMLHttpRequest——Ajax 时代的到来
  • 原文地址:https://www.cnblogs.com/NEOCSL/p/2373296.html
Copyright © 2011-2022 走看看