关于游戏选择模式页面的实现

今早在做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;
        }
    }

说实话觉得这种方法很笨,并不是很好。

但是又没有想到更好的实现方法,就先这样吧,以后再优化。

猜你喜欢

转载自blog.csdn.net/jyl1159131237/article/details/80278720