Beispiel #1
0
        void ReadGameScript()
        {
            for (int i = 1; i <= scriptNum; i++)
            {
                List <Enemybatch> enemyData = Enemybatch.ReadScript(scriptPath + i.ToString() + ".dat");
                gameScriptData.Add(enemyData);
            }
            List <Enemybatch> enemyData1 = Enemybatch.ReadScript(scriptPath + "BossSpell" + ".dat");

            gameScriptData.Add(enemyData1);
        }
Beispiel #2
0
        static public List <Enemybatch> ReadScript(string strRelativePath)
        {
            List <Enemybatch> ebTest = new List <Enemybatch>();
            string            strFileData; //用于储存文件数据
            int    iStrPos = 0;            //记录最后读取的字符串的位置
            string strTemp;                //文件翻译中间变量

            //获取exe文件绝对路径,不包括文件本身
            string strCurrentPath = System.Environment.CurrentDirectory;

            System.IO.StreamReader objReader =
                new System.IO.StreamReader(strCurrentPath + strRelativePath, System.Text.Encoding.Default);

            //一次性读取弹幕脚本,避免对文件反复操作
            strFileData = objReader.ReadToEnd();
            objReader.Close();
            //发射器数,开始循环读取各发射器参数
            Enemybatch._PreTranslate(out strTemp, ref strFileData, ref iStrPos);
            int enemyNum = Convert.ToInt32(strTemp);

            for (int i = 0; i < enemyNum; i++)
            {
                Enemybatch ebTemp = new Enemybatch();
                Enemybatch._PreTranslate(out strTemp, ref strFileData, ref iStrPos);
                ebTemp.ID = Convert.ToInt32(strTemp);

                Enemybatch._PreTranslate(out strTemp, ref strFileData, ref iStrPos);
                ebTemp.positionX = Convert.ToInt32(strTemp);

                Enemybatch._PreTranslate(out strTemp, ref strFileData, ref iStrPos);
                ebTemp.positionY = Convert.ToInt32(strTemp);

                Enemybatch._PreTranslate(out strTemp, ref strFileData, ref iStrPos);
                ebTemp.speed = Convert.ToInt32(strTemp);

                Enemybatch._PreTranslate(out strTemp, ref strFileData, ref iStrPos);
                ebTemp.speedDirect = (float)Convert.ToDouble(strTemp);

                Enemybatch._PreTranslate(out strTemp, ref strFileData, ref iStrPos);
                ebTemp.HP = Convert.ToInt32(strTemp);

                Enemybatch._PreTranslate(out strTemp, ref strFileData, ref iStrPos);
                ebTemp.eventStr = strTemp;

                Enemybatch._PreTranslate(out strTemp, ref strFileData, ref iStrPos);
                ebTemp.barrageName = strTemp;

                ebTest.Add(ebTemp);
            }
            return(ebTest);
        }