码迷,mamicode.com
首页 > 其他好文 > 详细

三消游戏开源(使用cocos2d-x实现)

时间:2015-06-27 16:04:29      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:

引言

消除类游戏是非常受大家欢迎的一种游戏类型,我就经常在轻轨上看到各种年龄段的人在玩。于是我就动手来实现一个,并做了一个DEMO(使用目前最新的cocos2d-x 3.6),大家可以随意修改。既然网上有很多游戏源码,我想我的应该要有一些特色。不能老是千篇一律。先给大家看看效率图,动态图比较大,可能加载很慢。(本文不会讲实现细节,如果读者想知道这方面的东西可以自行阅读源码,注释还是比较详细的。)

技术分享

特点

  • 游戏地图可编辑,可发挥自己的创意
  • 游戏算法与界面分离,可以很容易移植到其它游戏引擎

源码目录

技术分享

 

由于只是一个DEMO,代码不多。其实本来我是想做一个完整的游戏了,而且已经做了一部分了。无奈懒得调UI就烂尾了。下面介绍下主要的源码:

  • Backend 游戏算法相关的代码,独立于UI,可以拿到其它游戏引擎直接使用的;
  • Config 负责读取游戏配置和解析地图配置的代码;
  • Element 游戏中的精灵,继承自Sprite,用于播放各种动画;
  • GameLayer 负责显示游戏界面,并和Backend 进行互动;
  • Types 数据类型的定义

地图编辑

借助tiled编辑器用户可根据自己的喜好自行编辑各种“奇形怪状”的地图导入到游戏中。编辑规则也非常简单,如下:

技术分享
在tiled地图中,任何图块都表示为该区域会出现精灵。没有区域没有图块,则该区域不会出现精灵。左上角的图层名称表示精灵种类的数量(DEMO中默认为9)。值得注意的是地图顶部如果有多个凸出部份,那么他们的高度必须一致。因为新的精灵总是从最顶部掉下,并且最后下落不会上升(需求如此,这不是BUG)。

使用代码如下:

// 创建游戏图层
auto layer = GameLayer::create();
layer->SetMap(Config::GetInstance()->ReadMapConfig("map/map.tmx"));
addChild(layer);

配置文件

为了方便修改游戏参数,我做了一个配置文件。文件位于Resources/config/config.json。

{
    "Width": 74,                // 精灵图片宽度
    "Height": 73,               // 精灵图片高度
    "TypeQuantity" : 9,         // 最大精灵类型数量
    "MoveTime": 0.25,           // 移动耗时
    "FallDownTime": 0.10        // 下落耗时
}

源码下载

https://github.com/zhangpanyi/Eliminate

 

转载请注明出处:http://www.cnblogs.com/zhangpanyi/

三消游戏开源(使用cocos2d-x实现)

标签:

原文地址:http://www.cnblogs.com/zhangpanyi/p/4602903.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!