游戏元素的考量
首先我们使用C++写的,面向对象编程首先要考量的就是他的对象——类,所以当写一个游戏的时候我们就要考虑到类的使用,玩过这个游戏的朋友肯定知道这个游戏的规则哈,其实就是中国古代一种叫做弹棋的游戏演变而来,我们小时候玩的弹笔、弹橡皮都是这个道理,就是保住自己的棋子,将别人的棋子弹到界外就算胜利,那么我们就要考虑到需要建一些什么样的类:
1.游戏界面类Scene
首先一个游戏要有界面吧,所 以首先想到的就是建一个游戏界面类用来将游戏展现给用户,游戏界面类大同小异,按钮可以用menu统一管理,而动画就由精灵来实现即可,下面给出一个主界面的源代码
#include "MainScene.h"
#include <cocos2d.h>
#include "OfflineModeScene.h"
#include "SimpleAudioEngine.h"
#include "AiScene.h"
#include "PetScene.h"
USING_NS_CC;
bool IsMusicPlay = true ; //音乐播放状态初始化
/*自定义鼠标*/
MainScene::MainScene(void)
{
}
MainScene::~MainScene(void)
{
}
Scene* MainScene::createScene(){
Scene * scene = Scene::create();
MainScene * layer = MainScene::create();
scene->addChild(layer);
return scene;
}
bool MainScene::init(){
/*背景音乐*/
CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("MainBackground.wav",true);
Vec2 origin = Director::getInstance()->getVisibleOrigin();
Size visibleSize = Director::getInstance()->getVisibleSize();
/*设置背景*/
Sprite *s = Sprite::create("MainScene.png");
s->setPosition(visibleSize.width/2,visibleSize.height/2);
addChild(s);
/*添加退出按钮*/
auto closeItem = MenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
CC_CALLBACK_1(MainScene::EndCallback, this)); //回调函数
closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 , //设置退出按钮的位置
origin.y + closeItem->getContentSize().height/2));
/*添加单人模式按钮*/
auto startItem = MenuItemImage::create(
"OffLineStartBtn.png",
"OffLineStartBtnS.png",
CC_CALLBACK_1(MainScene::OfflineModeSceneCallback,this));
startItem->setPosi