一直想写一个华容道的游戏,现在就通过学习Cocos2D3.x写一个华容道的游戏吧。
这个游戏的要求是,最后生成安卓项目,安装到自己的手机上玩玩吧!
开发周期初步定在2-3天。
玩法:
华容道的玩法非常简单,在地图中通过移动角色,最后让曹操移动到特定位置游戏就算结束了。
需要实现的东东:
1. 界面:
菜单界面,选关界面,游戏界面,结算界面
2. 数据:
a) 角色数据
b) 关卡数据
基本功能的分析:
游戏中有三类角色:曹操,将军(赵云等),小兵。他们在整个棋盘中分别占4,2,1个格子。而且,将军有横向和竖向之分。
华容道的棋盘是5行4列的,如下图:
代码:
GameLayer.h
- #ifndef _GAME_LAYER_H_
- #define _GAME_LAYER_H_
- #include "cocos2d.h"
- class GameLayer : public cocos2d::Layer
- {
- public:
- static cocos2d::Scene* createScene();
- CREATE_FUNC(GameLayer);
- public:
- GameLayer();
- ~GameLayer();
- virtual bool init();
- private:
- };
- #endif
GameLayer.cpp
- #include "GameLayer.h"
- USING_NS_CC ;
- Scene* GameLayer::createScene()
- {
- auto scene = Scene::create() ;
- auto layer = GameLayer::create() ;
- scene->addChild(layer);
- return scene ;
- }
- GameLayer::GameLayer()
- {
- }
- GameLayer::~GameLayer()
- {
- }
- bool GameLayer::init()
- {
- Size size = Director::getInstance()->getWinSize();
- //添加一张背景图片
- auto bgSprite = Sprite::create("main_bg0.png") ;
- bgSprite->setPosition(size.width / 2,size.height / 2) ;
- addChild(bgSprite);
- return true ;
- }
AppDelegate中的修改:
游戏中用到的图是320x480的,所以,改下窗口大小
AppDelegate.cpp
- auto director = Director::getInstance();
- auto glview = director->getOpenGLView();
- if(!glview) {
- glview = GLViewImpl::createWithRect("HuaRong",Rect(0,320,480));//设置下窗口尺寸
- director->setOpenGLView(glview);
- }