今早在做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; } }
说实话觉得这种方法很笨,并不是很好。
但是又没有想到更好的实现方法,就先这样吧,以后再优化。