Cocos2d-X开发中国象棋《四》设计游戏场景

设计完开始界面后就要设计游戏界面了

为了理清设计思路先看一张游戏界面效果图


游戏界面设计思路:

1、在窗口上放一张桌子

2、在桌子上放一个棋盘

3、在棋盘右边添加新局按钮,暂不实现具体的功能

4、在棋盘右边添加开始按钮,暂不实现具体的功能

5、在棋盘右边添加悔棋按钮,暂不实现具体的功能

6、在棋盘右边添加难度按钮,暂不实现具体的功能

7、在棋盘右边添加声音按钮,暂不实现具体的功能

8、在棋盘右边添加返回按钮,暂不实现具体的功能

9、在桌子右边添加一个Voice标签

10、在桌子右边添加一个Return标签

11、在棋盘上放一个选择框,并且隐藏选择框


特别说明:

1、上面提到的功能都是在SceneGame.h/SceneGame.cpp中实现的

2、写这篇博客前对游戏进行了一些改进,所以在前面的博客中没有出现增加的功能


实现在窗口上放一张桌子:

     //创建桌子
     CCSprite* desk = CCSprite::create("floor.jpg");
     this->addChild(desk);
     
     //设置桌子的位置
     desk->setPosition(ccp(winSize.width / 2, winSize.height / 2));
     
     //压缩桌子
     desk->setScaleX(winSize.width / desk->getContentSize().width);
     desk->setScaleY(winSize.height / desk->getContentSize().height);


实现在桌子上放一个棋盘:

 //创建棋盘
    CCSprite* plate = CCSprite::create("background.png");
    this->addChild(plate);

    //设置描点为(0,0)
    plate->setAnchorPoint(CCPointZero);

    //设置棋盘的位置
    plate->setPosition(_plateOffset);

    //压缩棋盘:(窗口的高度 - 偏移的y坐标 * 2) / 图片的高度
    plate->setScale((winSize.height -_plateOffset.y *2)/ plate->getContentSize().height);


在桌子上添加按钮和标签

    //创建Menu
   CCMenu* menu = CCMenu::create();
   this->addChild(menu);

    //创建开始按钮
    CCMenuItem* itemStart = CCMenuItemImage::create("start.jpg", "start.jpg",
                                           this, menu_selector(SceneGame::Start));
    menu->addChild(itemStart);
    itemStart->setPositionX(190);
    itemStart->setPositionY(120);

    //创建新局按钮
    CCMenuItem* itemNew = CCMenuItemImage::create("new.jpg", "new.jpg",
                                           this, menu_selector(SceneGame::New));
    menu->addChild(itemNew);
    itemNew->setPositionX(itemStart->getPositionX());
    itemNew->setPositionY(itemStart->getPositionY() + 60);


   //创建悔棋按钮
    CCMenuItem* item = CCMenuItemImage::create("regret.jpg", "regret.jpg",
                                               this, menu_selector(SceneGame::Back));
    menu->addChild(item);
    item->setPositionX(itemStart->getPositionX());
    item->setPositionY(itemStart->getPositionY() - 60);

    //创建暂停按钮
    CCMenuItem* itemPause = CCMenuItemImage::create("pause.jpg", "pause.jpg",
                                           this, menu_selector(SceneGame::Pause));
    menu->addChild(itemPause);
    itemPause->setPositionX(itemStart->getPositionX());
    itemPause->setPositionY(itemStart->getPositionY() - 60 - 60);

     //创建难度按钮
    CCMenuItem* itemDifficulty = CCMenuItemImage::create("difficulty.jpg", "difficulty.jpg",
                                           this, menu_selector(SceneGame::Difficulty));
    menu->addChild(itemDifficulty);
    itemDifficulty->setPositionX(itemStart->getPositionX());
    itemDifficulty->setPositionY(itemStart->getPositionY() - 60 - 60 - 60);

     //创建播放背景音乐按钮
    CCMenuItem* itemVoice = CCMenuItemImage::create("openVolice.png", "openVolice.png.png",
                                           this, menu_selector(SceneGame::Voice));
    menu->addChild(itemVoice);
    itemVoice->setPositionX(itemStart->getPositionX());
    itemVoice->setPositionY(itemStart->getPositionY() - 60 - 60 - 60 - 60);

     //创建停止播放背景音乐按钮
    itemCloseVoice = CCMenuItemImage::create("closeVolice.png", "closeVolice.png",
                                           this, menu_selector(SceneGame::Voice));
    menu->addChild(itemCloseVoice);
    itemCloseVoice->setPositionX(itemStart->getPositionX());
    itemCloseVoice->setPositionY(itemStart->getPositionY() - 60 - 60 - 60 - 60);
    itemCloseVoice->setVisible(false);


    //CCLog("x=%lf", itemStart->getPositionX());
    //CCLog("y=%lf", itemStart->getPositionY() - 240);

    //创建一个标签,显示文本
    CCLabelTTF* label = CCLabelTTF::create("Voice", "Arial", 25);  
    addChild(label);  
 
   //设置文字的位置  
   label->setPosition(ccp(winSize.width/2 + 120, winSize.height/2 - 120));  

   //设置文字的颜色
   label->setColor(ccc3(0, 0, 0));

     //创建返回按钮
    CCMenuItem* itemReturn = CCMenuItemImage::create("return.png", "return.png",
                                           this, menu_selector(SceneGame::Return));
    menu->addChild(itemReturn);
    itemReturn->setPositionX(itemStart->getPositionX());
    itemReturn->setPositionY(itemStart->getPositionY() - 60 - 60 - 60 - 60 - 60);
    itemReturn->setScale(0.2f);

    //创建一个标签,显示文本
    CCLabelTTF* label1 = CCLabelTTF::create("Return", "Arial", 25);  
    addChild(label1);  
 
   //设置文字的位置  
   label1->setPosition(ccp(winSize.width/2 + 120, winSize.height/2 - 180));  

   //设置文字的颜色
   label1->setColor(ccc3(0, 0, 0));

在棋盘上放一个选择框

 //创建一个选择框
    //当选中某个棋子的时候,选择框会套在选好的棋子上
    _selectSprite = CCSprite::create("selected.png");
    addChild(_selectSprite);

    //隐藏选择框
    _selectSprite->setVisible(false);

    //设置选择框的优先级
    _selectSprite->setZOrder(1000);

    //压缩选择框
    _selectSprite->setScale(.8f);

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值