这个程序通过简单的命令脚本实现了游戏开头的一些图片和音乐动作的组织.
工程文件在:
http://d.download.csdn.net/down/2994385/worm003
以下是脚本部分的代码,比较上一个版本有些许改进
}
else if(command == COMMAND_EXIT)
{
assert(currentScript.empty());
flagExit=true;
}
else if(command == COMMAND_WAITFORKEYPRESS)
{
assert(currentScript.empty());
while(!getAnyKeyState())
{
getKbrdState();
}
// GetAsyncKeyState();
//用directX自带的输入工具 direct Input 来解决 收藏夹中~ 哈哈哈哈哈
//_kbhit returns a nonzero value if a key has been pressed. Otherwise, it returns 0.
//while(!kbhit())
// ;
}
else
{
//错误命令
// printf("/tError: Invalid command./n");
}
}
void GetCurrentScript(string ¤tLine)
{
currentLine=script[0];
script.erase(script.begin());
}
string GetCommand( string& currentScript)
{
string command;
for(size_t i=0;currentScript[i]!=' ' && i!=currentScript.size();++i)
command.push_back(currentScript[i]);
currentScript.erase(0,command.size());
DeleteSpaces(currentScript);
return command;
}
int GetIntParam( string& currentScript)
{
string loopNumString;
assert(isdigit(currentScript[0]));
for(size_t i=0;i!=currentScript.size() && currentScript[i]!=' ' && currentScript[i]!='/t';++i)
{
loopNumString.push_back(currentScript[i]);
}
int loopNum=atoi(loopNumString.c_str());
currentScript.erase(0,loopNumString.size());
DeleteSpaces(currentScript);
return loopNum;
}
string GetStringParam( string& currentScript)
{
int flag=0;//1表示有1个" 2表示有2个"
string param;
assert(currentScript[0]== '"');//第一个字符应该是"
for(size_t i=currentScript.find('"')+1; i < currentScript.size();++i)
{
if(currentScript[i] == '"')
flag++;
if(flag == 1)
break;
param.push_back(currentScript[i]);
}
currentScript.erase(0,param.size()+2);
DeleteSpaces(currentScript);
return param;
}
运行结果: