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

前端之家收集整理的这篇文章主要介绍了Cocos2d-X开发中国象棋《四》设计游戏场景前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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


游戏界面设计思路:

1、在窗口上放一张桌子

2、在桌子上放一个棋盘

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

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

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

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

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

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

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

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

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


特别说明:

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

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


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

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


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

  1. //创建棋盘
  2. CCSprite* plate = CCSprite::create("background.png");
  3. this->addChild(plate);
  4.  
  5. //设置描点为(0,0)
  6. plate->setAnchorPoint(CCPointZero);
  7.  
  8. //设置棋盘的位置
  9. plate->setPosition(_plateOffset);
  10.  
  11. //压缩棋盘:(窗口的高度 - 偏移的y坐标 * 2) / 图片的高度
  12. plate->setScale((winSize.height -_plateOffset.y *2)/ plate->getContentSize().height);


在桌子上添加按钮和标签

  1. //创建Menu
  2. CCMenu* menu = CCMenu::create();
  3. this->addChild(menu);
  4.  
  5. //创建开始按钮
  6. CCMenuItem* itemStart = CCMenuItemImage::create("start.jpg","start.jpg",this,menu_selector(SceneGame::Start));
  7. menu->addChild(itemStart);
  8. itemStart->setPositionX(190);
  9. itemStart->setPositionY(120);
  10.  
  11. //创建新局按钮
  12. CCMenuItem* itemNew = CCMenuItemImage::create("new.jpg","new.jpg",menu_selector(SceneGame::New));
  13. menu->addChild(itemNew);
  14. itemNew->setPositionX(itemStart->getPositionX());
  15. itemNew->setPositionY(itemStart->getPositionY() + 60);
  16.  
  17.  
  18. //创建悔棋按钮
  19. CCMenuItem* item = CCMenuItemImage::create("regret.jpg","regret.jpg",menu_selector(SceneGame::Back));
  20. menu->addChild(item);
  21. item->setPositionX(itemStart->getPositionX());
  22. item->setPositionY(itemStart->getPositionY() - 60);
  23.  
  24. //创建暂停按钮
  25. CCMenuItem* itemPause = CCMenuItemImage::create("pause.jpg","pause.jpg",menu_selector(SceneGame::Pause));
  26. menu->addChild(itemPause);
  27. itemPause->setPositionX(itemStart->getPositionX());
  28. itemPause->setPositionY(itemStart->getPositionY() - 60 - 60);
  29.  
  30. //创建难度按钮
  31. CCMenuItem* itemDifficulty = CCMenuItemImage::create("difficulty.jpg","difficulty.jpg",menu_selector(SceneGame::Difficulty));
  32. menu->addChild(itemDifficulty);
  33. itemDifficulty->setPositionX(itemStart->getPositionX());
  34. itemDifficulty->setPositionY(itemStart->getPositionY() - 60 - 60 - 60);
  35.  
  36. //创建播放背景音乐按钮
  37. CCMenuItem* itemVoice = CCMenuItemImage::create("openVolice.png","openVolice.png.png",menu_selector(SceneGame::Voice));
  38. menu->addChild(itemVoice);
  39. itemVoice->setPositionX(itemStart->getPositionX());
  40. itemVoice->setPositionY(itemStart->getPositionY() - 60 - 60 - 60 - 60);
  41.  
  42. //创建停止播放背景音乐按钮
  43. itemCloseVoice = CCMenuItemImage::create("closeVolice.png","closeVolice.png",menu_selector(SceneGame::Voice));
  44. menu->addChild(itemCloseVoice);
  45. itemCloseVoice->setPositionX(itemStart->getPositionX());
  46. itemCloseVoice->setPositionY(itemStart->getPositionY() - 60 - 60 - 60 - 60);
  47. itemCloseVoice->setVisible(false);
  48.  
  49.  
  50. //CCLog("x=%lf",itemStart->getPositionX());
  51. //CCLog("y=%lf",itemStart->getPositionY() - 240);
  52.  
  53. //创建一个标签显示文本
  54. CCLabelTTF* label = CCLabelTTF::create("Voice","Arial",25);
  55. addChild(label);
  56. //设置文字的位置
  57. label->setPosition(ccp(winSize.width/2 + 120,winSize.height/2 - 120));
  58.  
  59. //设置文字的颜色
  60. label->setColor(ccc3(0,0));
  61.  
  62. //创建返回按钮
  63. CCMenuItem* itemReturn = CCMenuItemImage::create("return.png","return.png",menu_selector(SceneGame::Return));
  64. menu->addChild(itemReturn);
  65. itemReturn->setPositionX(itemStart->getPositionX());
  66. itemReturn->setPositionY(itemStart->getPositionY() - 60 - 60 - 60 - 60 - 60);
  67. itemReturn->setScale(0.2f);
  68.  
  69. //创建一个标签显示文本
  70. CCLabelTTF* label1 = CCLabelTTF::create("Return",25);
  71. addChild(label1);
  72. //设置文字的位置
  73. label1->setPosition(ccp(winSize.width/2 + 120,winSize.height/2 - 180));
  74.  
  75. //设置文字的颜色
  76. label1->setColor(ccc3(0,0));

在棋盘上放一个选择框

  1. //创建一个选择框
  2. //当选中某个棋子的时候,选择框会套在选好的棋子上
  3. _selectSprite = CCSprite::create("selected.png");
  4. addChild(_selectSprite);
  5.  
  6. //隐藏选择框
  7. _selectSprite->setVisible(false);
  8.  
  9. //设置选择框的优先级
  10. _selectSprite->setZOrder(1000);
  11.  
  12. //压缩选择框
  13. _selectSprite->setScale(.8f);

猜你在找的Cocos2d-x相关文章