加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 19:26:12 所属栏目:百科 来源:网络整理
导读:设计完开始界面后就要设计游戏界面了 为了理清设计思路先看一张游戏界面效果图 游戏界面设计思路: 1、 在窗口上放一张桌子 2、 在桌子上放一个棋盘 3、 在棋盘右边添加新局按钮,暂不实现具体的功能 4、 在棋盘右边添加开始按钮,暂不实现具体的功能 5、 在

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

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


游戏界面设计思路:

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",menu_selector(SceneGame::New));
    menu->addChild(itemNew);
    itemNew->setPositionX(itemStart->getPositionX());
    itemNew->setPositionY(itemStart->getPositionY() + 60);


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

    //创建暂停按钮
    CCMenuItem* itemPause = CCMenuItemImage::create("pause.jpg","pause.jpg",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",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",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",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));

     //创建返回按钮
    CCMenuItem* itemReturn = CCMenuItemImage::create("return.png","return.png",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",25);  
    addChild(label1);  
 
   //设置文字的位置  
   label1->setPosition(ccp(winSize.width/2 + 120,winSize.height/2 - 180));  

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

在棋盘上放一个选择框

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读