设计完开始界面后就要设计游戏界面了
为了理清设计思路先看一张游戏界面效果图
游戏界面设计思路:
1、在窗口上放一张桌子
2、在桌子上放一个棋盘
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);