cocos2d-x游戏实例 《简单棋》入门尝试(二) 初始化程序界面
2013-02-10 17:15
567 查看
以下步骤主要参考游戏实例-《跑跑跑》制作教程(第一篇)——加载地图。不多说,直接步骤。
(5)在AppDelegate.cpp中加入ChessScene头文件。并修改代码:
(2)我新建的Tiled的宽度是20,高度是20。(可直接打开地图源文件查看处理方式,或者参考推荐的教程拷贝对应图片与地图资源到响应目录)
(3)在对象层加入了21个对象(如果对于我要加入对象,或者怎么添加与操作这些对象上有疑问,在上面推荐的两个教程中都写到了,而且我认为他们比我写的好,故不多累赘),目的在于获取棋盘中可放置棋子的坐标值。其21个对象命名如下图:
(2)在Tiled中,开始我新建了两个图层background、chessboard和一个对象图层chessmansObject。结合后面加载棋子的时候,棋子总是无法完全显示,总只显示部分,后来我将background、chessboard合并之后,得以解决。
一、创建工程。
工程名SimpleChess。二、添加类ChessScene。
1、功能
类ChessScene主要作为程序的入口管理、游戏UI加载。2、步骤
(1)在ChessScene.h中加入头文件#include "cocos2d.h" using namespace cocos2d;(2)定义ChessScene继承自CCLayer。
class ChessScene:public CCLayer(3)在ChessScene.h加入函数声明
CREATE_FUNC(ChessScene); // 相当于重写CCLayer中的create函数,让create函数返回子类对象。 virtual bool init(); // 初始化,可以在这里创建精灵 static CCScene* scene(); // 在这里要自己新建一个CCScene类,然后把我们自定义的场景类作为一个CCLayer添加到这个CCScene类中(4)在ChessScene.cpp实现函数声明
CCScene* ChessScene::scene() { CCScene *mScene = CCScene::create(); //创建了一个真正的CCScene类 ChessScene *mLayer = ChessScene::create(); //ChessScene作为一个layer(一个层),它被添加到刚刚创建的那个CCScene类了。 mScene->addChild(mLayer); return mScene; } bool ChessScene::init() { CCTMXTiledMap *map = CCTMXTiledMap::create("map/chessboard.tmx"); //添加地图 this->addChild(map); return true; }
(5)在AppDelegate.cpp中加入ChessScene头文件。并修改代码:
// create a scene. it's an autorelease object CCScene *pScene = HelloWorld::scene();为:
// create a scene. it's an autorelease object CCScene *pScene = ChessScene::scene();(6)为了适应所画地图的大小,修改了main.cpp中设置大小的函数其设置为:setFrameSize(641, 641);
三、制作地图
我认为我无法将作图这个过程写的好过Tiled Map Editor(一) ,故我只表述下我做得图片的注意点。1、注意点
(1)自己制作的棋盘图片资源链接地址(发现CSDN博客不支持上传附件,而且开始上传的貌似CSDN给我直接给干掉了,可能觉得我那个图片在坑人呜呼,所以此处将教程三中的图片也加载到了相应资源,希望别又给我删除了啊):棋盘图片资源(2)我新建的Tiled的宽度是20,高度是20。(可直接打开地图源文件查看处理方式,或者参考推荐的教程拷贝对应图片与地图资源到响应目录)
(3)在对象层加入了21个对象(如果对于我要加入对象,或者怎么添加与操作这些对象上有疑问,在上面推荐的两个教程中都写到了,而且我认为他们比我写的好,故不多累赘),目的在于获取棋盘中可放置棋子的坐标值。其21个对象命名如下图:
2、遇到过的问题及解决办法
(1)因不熟悉Tiled,第一次参考上面推荐教程时只拷贝了.tmx地图文件到指定目录,程序根本无法运行。后仔细读推荐教程《跑跑跑》中第7小点,得以解决。(2)在Tiled中,开始我新建了两个图层background、chessboard和一个对象图层chessmansObject。结合后面加载棋子的时候,棋子总是无法完全显示,总只显示部分,后来我将background、chessboard合并之后,得以解决。
四、执行效果图
相关文章推荐
- cocos2d-x游戏实例 《简单棋》入门尝试(三) 初始化棋子布局信息
- cocos2d-x游戏实例 《简单棋》入门尝试(一) 整体思路
- cocos2d-x游戏实例 《简单棋》入门尝试(四) 控制棋子移动的一些分析
- cocos2d-x游戏实例 《简单棋》入门尝试(五) 玩家控制效果的实现
- cocos2d-x游戏实例 《简单棋》入门尝试(六) 棋子吃子情况判定
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》第一步--- 开始界面
- cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第一步---開始界面&关卡选择
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》第一步--- 开始界面
- Cocos2d-x3.0游戏实例之《别救我》第五篇——使用Cocostudio UI编辑器创建操作界面
- cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第五步---着手打造游戏界面
- Cocos2d-x3.0游戏实例之《别救我》第五篇——使用Cocostudio UI编辑器创建操作界面
- cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第一步---开始界面&关卡选择
- 正尝试在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样...
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 03.游戏界面 背景层实现滚动
- Cocos2d-JS 使用cocostudio创建游戏并用摇杆控制游戏实例
- cocos2d-x游戏实例(16)-纵版射击游戏(3)
- cocos2d-x游戏实例(25)-简易动作游戏(3)
- Node.js入门实例程序
- Cocos2d-x3.0游戏实例之《别救我》第六篇——从代码中获取UI控件
- Cocos2d-x保存用户游戏数据CCUserDefault类使用实例