2 Star 0 Fork 0

SadLava/Arrow3

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
HFILE.cpp 3.32 KB
一键复制 编辑 原始数据 按行查看 历史
SadLava 提交于 2022-05-15 19:25 . 基本做好游戏机制
//解密
string uncode(string pass) {
return pass;
}
//加密
string encode(string str) {
return str;
}
//读取全部用户的数据
void readUsers() {
fstream fio;
fio.open("save\\userlist",ios::in);
if(!fio.is_open()) {
fio.close();
fio.open("save\\userlist",ios::out);
fio.close();
fio.open("save\\userlist",ios::in);
}
string un;//用户名
string pass;//密码
while(fio>>un>>pass) {
UNList.push_back(uncode(un));
PASSList.push_back(uncode(pass));
}
}
//读取用户数据
int readUData(string uname,string pass) {
int pos;
for(int i=0; i<UNList.size(); i++) {
if(UNList[i]==uname) {
if(PASSList[i]!=pass) {
return 1;//密码不正确
}
pos=i;
break;
}
}
ifstream ifile;
ifile.open(((string)"save\\"+uname).c_str(),ios::in);
if(!ifile.is_open()) {
UNList.erase(UNList.begin()+pos);
PASSList.erase(PASSList.begin()+pos);
return 2;//用户数据不存在
}
ifile>>scores;//读取积分
grade gt;
ifile>>s_grade.first>>s_grade.second;
//读取机型
int n;
string t;
ifile>>n;
memset(gPlanes,0,sizeof(bool)*END);
for(int i=0;i<n;i++){
ifile>>t;
gPlanes[SDATA.n2i[t]]=1;
}
//读设置
ifile>>n;
MSYS.setBV(n/100.0);
ifile>>n;
MSYS.setSV(n/100.0);
//读取排行数据
tops.clear();
while(!ifile.eof()) {
ifile>>gt.score>>gt.falls>>gt.lens>>t;
gt.role=SDATA.n2i[t];
tops.push_back(gt);
}
name=uname;
return 0;
}
//保存用户数据
void saveUData() {
ofstream ofile;
ofile.open(((string)"save\\"+name).c_str());
ofile<<scores<<'\n';
ofile<<s_grade.first<<' '<<s_grade.second<<'\n';
int n=0;
for(int i=0;i<END;i++){
if(gPlanes[i]) n++;
}
ofile<<n<<'\n';
for(int i=0;i<END;i++){
if(gPlanes[i]) ofile<<SDATA.i2n[i]<<'\n';
}
ofile<<MSYS.getBV()*100<<'\n'<<MSYS.getSV()*100<<'\n';
for(int i=0; i<tops.size(); i++) {
ofile<<tops[i].score<<' '<<tops[i].falls<<' '<<tops[i].lens<<' '<<SDATA.i2n[tops[i].role]<<'\n';
}
}
void readStoryInfo() {
ifstream ifile;
ifile.open("Checkpoint\\story",ios::in);
ifile>>s_maxc;
}
void readChapter(int chapter){
if(chapter>s_maxc) return;
string cp;
char st[100];
itoa(chapter,st,10);
cp=st;
cp+="\\chapter";
ifstream ifile;
ifile.open(((string)"Checkpoint\\"+cp).c_str(),ios::in);
ifile>>s_namec>>s_maxg;
}
void readCheckpoint(int chapter,int grade) {
readChapter(chapter);
if(grade>s_maxg) return;
string cp;
char st[100];
itoa(chapter,st,10);
cp=st;
cp+="\\";
itoa(grade,st,10);
cp+=st;
ifstream ifile;
ifile.open(((string)"Checkpoint\\"+cp).c_str(),ios::in);
int n;
ifile>>n;
string s;
s_words.clear();
for(int i=0; i<n; i++) {
ifile>>s;
s_words.push_back(s);
}
ifile>>st;//读取无用的机型限定
ifile>>s_weight;//读积分加权
//读敌机信息
ifile>>n;
string a;
int r,g,b;
float f;
for(int i=0; i<n; i++) {
ifile>>a>>f;
SDATA.maxNum[SDATA.n2i[a]]=f;
}
ifile>>checkpointDist;
// //读目标
// ifile>>s_target.len;
// ifile>>s_target.falls;
// ifile>>n;
// for(int i=0; i<n; i++) {
// ifile>>a>>b;
// s_target.fall[SDATA.n2i[a]]=b;
// }
// //读特殊场景设置
// ifile>>st[0];
// if(st[0]=='T'){
// ifile>>STARNUM;
// ifile>>r>>g>>b;
// printf("%d %d %d\n",r,g,b) ;
// bkcolor=EGERGBA(r,g,b,255);
//
// }else{
// STARNUM=getwidth() * getheight() / 200;
// bkcolor=0;
// }
//好习惯
ifile.close();
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/sadlava/arrow3.git
git@gitee.com:sadlava/arrow3.git
sadlava
arrow3
Arrow3
master

搜索帮助