zoukankan      html  css  js  c++  java
  • Cocos2d-X开发中国象棋《四》设计游戏场景

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

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


    游戏界面设计思路:

    1、在窗体上放一张桌子

    2、在桌子上放一个棋盘

    3、在棋盘右边加入新局button,暂不实现详细的功能

    4、在棋盘右边加入開始button,暂不实现详细的功能

    5、在棋盘右边加入悔棋button,暂不实现详细的功能

    6、在棋盘右边加入难度button,暂不实现详细的功能

    7、在棋盘右边加入声音button,暂不实现详细的功能

    8、在棋盘右边加入返回button。暂不实现详细的功能

    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);


    在桌子上加入button和标签

        //创建Menu
       CCMenu* menu = CCMenu::create();
       this->addChild(menu);
    
        //创建開始button
        CCMenuItem* itemStart = CCMenuItemImage::create("start.jpg", "start.jpg",
                                               this, menu_selector(SceneGame::Start));
        menu->addChild(itemStart);
        itemStart->setPositionX(190);
        itemStart->setPositionY(120);
    
        //创建新局button
        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);
    
    
       //创建悔棋button
        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);
    
        //创建暂停button
        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);
    
         //创建难度button
        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);
    
         //创建播放背景音乐button
        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);
    
         //创建停止播放背景音乐button
        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));
    
         //创建返回button
        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);

  • 相关阅读:
    遍历迭代map的集中方法
    雅可比迭代法
    Myeclipse无法开启Servers视图解决办法
    JS去除空格方法记录
    10分钟学会前端调试利器——FireBug
    Linux入门
    Maven工程引入jar包
    android一些常用的代码1(收藏)
    android中列表的滑动删除仿ios滑动删除
    android 中使用缓存加载数据
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7007297.html
Copyright © 2011-2022 走看看