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); }
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); }