今早在做C++老师预留的funcode作业——坦克大战 基本功能实现后呢,便想着添加玩家二进去,毕竟传统的坦克大战可是可以双人进行游戏的哦。 再添加一个玩家坦克是一点也不难的,照
今早在做C++老师预留的funcode作业——坦克大战
基本功能实现后呢,便想着添加玩家二进去,毕竟传统的坦克大战可是可以双人进行游戏的哦。
再添加一个玩家坦克是一点也不难的,照着前面第一个玩家坦克做就行了。
可是如何在开始前的页面上由玩家选择单人或者双人游戏呢,这里记录下我今早的做法(当然肯定不是最好的,有待完善)
首先创建四个精灵类:
CSprite* m_solo;CSprite* m_double;
CSprite* m_choose1;
CSprite* m_choose2;
然后在构造函数中进行初始化:
m_solo= new CSprite("solo");m_double= new CSprite("double");
m_choose1= new CSprite("choose1");
m_choose2 =new CSprite("choose2");
然后在funcode中设置好四个模板精灵的接口。
效果如图所示:
注意在一开始初始化时隐藏第二个选择图标。
最后实现的就是用小键盘下键在两种模式之间来回选择了
创建bool型全局变量solo和dou,初值分别为true和false;
int型全局变量flag作为标识,1为单人模式,2为双人模式。
并在init函数中做对应判断选择。
在键盘按下函数中添加对应代码:
if( 0 ==GetGameState() ){
if(solo==true&&iKey==KEY_DOWN)
{
solo=false;
dou=true;
m_choose1->SetSpriteVisible(false);
m_choose2->SetSpriteVisible(true);
}
else if(dou==true&&iKey==KEY_DOWN)
{
dou=false;
solo=true;
m_choose1->SetSpriteVisible(true);
m_choose2->SetSpriteVisible(false);
}
if(solo==true&&iKey==KEY_ENTER)
{
m_iGameState = 1;
flag=1;
}
else if(dou==true&&iKey==KEY_ENTER)
{
m_iGameState = 1;
flag=2;
}
}
说实话觉得这种方法很笨,并不是很好。
但是又没有想到更好的实现方法,就先这样吧,以后再优化。