cocos2dx中的格子地图TileMap】的更多相关文章

格子地图的优点: a.节省内存,我们知道对于一款游戏来说,如果以图片来作为地图的话,对于神庙逃亡,魂斗罗这样的场景很多,地图很长的游戏显然不现实,因为图片很占内存,但是这些游戏的地图有一个特点就是:重复的部分很多,比如魂斗罗游戏的每一关的地图里边,无外乎,陆地,海洋,天空,草地等等这些元素,设想我们把地图分成一个一个的小格子,那么这么一张大的地图则只需要五种格子即可构成:陆地格子,海洋格子,天空格子,草地格子,其他格子等,而需要的地方只需要把这几种格子组合即可,这样在内存中只需要存储这五种格子的…
cocos2d-x中的瓦片地图是通过tiledMap软件制作的,存档格式是.tmx格式.此软件的使用步骤简单总结如下: (1)制作瓦片地图 1 打开软件,软件界面如下图. 2. 新建地图(文件->新文件) 3.增加新图块(地图->新图块) 4. 制作地图.在图层区域,单击右键可以新建图层和对象,上面的工具栏中的工具,制作地图. 5 导出,记住格式一定是tmx格式 说明 有时候,在使用地图的时候,可能会报找不到资源的错误,可以使用xcode打开地图文件,将资源路径修改如图所示形式. 在地图完成后…
XML就可以扩展标记语言.在游戏开发中,经常使用于保存游戏信息,如最高分,游戏等级.等信息,和描写叙述一些资源等,我第一次使用xml是在使用CCAnimation创建动画中,使用plist文件载入动画时.使用了xml文件当中plist文件事实上就是一个xml文件,在前面的博客中的在Cocos2d-X中使用瓦片地图<一>和在Cocos2d-X中使用瓦片地图<二>中使用瓦片地图编辑器创建的瓦片地图保存后会得到一个tmx格式的文件,tmx文件也是一个xml文件 xml文件还能够解决中文乱…
cocos2dx中有三种定时器:schedule,scheduleUpdate,scheduleOnce.功能分别是 每隔几秒调用自定义函数.调用系统默认的update()函数.只调用一次自定义函数 1.scheduleUpdate 加入当前节点后,程序会每帧都会自动执行一次默认的Update函数.(注:一定是Update函数哦,若想调用其他自己命名的函数则使用schedule) 看例子,走起. 首先在HelloWord类的头文件中声明Update函数: void Update(float dt…
引言 程序截图: 这篇教程是<如何使用Cocos2d-x 3.0制作基于tilemap的游戏>的第二部分.在上一个教程中,我们创建了一个简单的基于tiled地图的游戏,里面有一个忍者在沙漠里寻找可口的西瓜! 在第一部分教程中,我们介绍了如何基于tiled创建地图,怎样把地图增加到游戏中去,以及如何滚动地图来跟随主角移动.还有如何使用对象层. 在这部分教程中,我们将会介绍如何在地图中制作可以碰撞的区域,如何使用tile属性,如果收集游戏物品并且动态地修改地图.如何确保你的忍者不会吃得太饱! 因此…
引言 程序截图: 本教程将会教大家如何使用Cocos2d-x来做一个基于tile地图的游戏,当然还有Tiled地图编辑器.(我们小时候玩的小霸王小学机里面的游戏,大部分都是基于tile地图的游戏,如坦克大战.冒险岛.吞食天地等)我们将会创建一个忍者在沙漠中找西瓜吃的小游戏. 在第一部分教程中,我将教大家如何使用Tile来创建地图,怎样把地图加到游戏中,怎么让地图跟随玩家滚动,以及怎样使用对象层. 在第二部分教程中,我将介绍如何在地图中创建可碰撞的区域,如何使用tile属性,如何制作可拾取的物体和…
http://blog.csdn.net/fansongy/article/details/9006677 通常情况下,游戏中绚丽的文字和数字都不是字体生成的而是"贴"上去!今天,我就在这里为大家介绍一个使用了图片打包技术的位图字体生成工具--BMFont. 1.先下载一个BMFont(下载地址:http://www.angelcode.com/products/bmfont/) 2.运行程序,单击鼠标左键点亮相应位置的字母,比如:0.1.2./ 等. 3.选择 Edit->Op…
本例是对WinForm中使用百度地图的简要介绍.百度地图目前支持Android开发,IOS开发,Web开发,服务接口,具体可以参照'百度地图开放平台'. [动态加载百度地图]涉及到的知识点: WebBrowser控件,此控件是VS自带的控件,使用户可以在WinForm窗体中导航网页.主要用到Navigate函数,此函数将指定的统一资源定位符 (URL) 处的文档加载到浏览器新窗口或 System.Windows.Forms.WebBrowser 控件中.有关此控件的详细信息,请参照MSDN上详细…
Cocos2dx中线程优先级问题 不论是ios还是android,遇到耗时的任务都要另起线程处理,否则程序不能及时用户的反馈.游戏中如果一圈循环不能在1/frameRate(帧率是30则1/30)秒内完成,就会有掉帧,游戏卡顿.比如,游戏中要解析一个动画json配置,需要60ms,这如果在主线程中搞就掉帧了,那么另再开个线程解析json,解析完了再通知主线程如何?这是可以的,但是考虑一种极端情况,线程切换到json解析线程,直到json解析完成后才切换到主线程,这不是一样掉帧吗!所以理想情况是让…
在上一篇博客中,我们一起学习了如何在Cocos2d-x中存储数据和读取信息,本篇博客我们将一起讨论和数据存储同样重要的联网技术. 一.弱联网技术介绍 在网络游戏中许多重要的功能都需要网络连接,而根据需要的不同,这些连接大体可分为弱联网和强联网两种.比如,在<微信飞机大战>或者<开心消消乐>这类的游戏中,玩家在本地进行游戏,只有最后才会上传成绩到服务器进行排名或者将成绩分享.这样数据量和频率都比较低的网络通信就可以使用弱联网技术.而在一些需要实时对话或者处理大量的数据的游戏中弱联网就…
一.引言 数据存储和网络功能可以说是一款游戏中必不可少的功能,如果一款游戏不能保存进度那么它的可玩性必然大打折扣(试想一下,玩家辛辛苦苦玩了一整天的游戏,结果退出时告诉人家不能保存关卡信息,你明天还得从头来再玩一遍.那玩家一定会掏出准备已久的西瓜刀~) 其实Cocos2d-x引擎早已为我们开发者封装好了多种数据存储的类或者方法,包括简单信息的存储,文件的读写,SQLite数据库和RAR格式的压缩文件的读取等等.(用心良苦啊!)其中大部分的存储功能被封装到了UserDefault类中. 二.数据存…
在ionic项目中,如果想实现定位功能,可以使用ng-cordova提供的cordova-plugin-geolocation. 但由于高墙的缘故,国内andorid环境下,此插件不起作用(ios环境下可用). 国内比较好的是现实使用百度地图提供的API,来实现定位,以及地图的一系列扩展功能. 现在我们使用'Weizhe He'提供的cordova-qdc-baidu-location来尝试创建简单的定位app. Stpe1:创建一个项目(此处使用的是tab类型的项目,创建方式可参照我前一篇如何…
0.  placeholder 头文件:<functional> namespace: placeholder placeholder 就是一堆帮助bind占参数位置的东西,名字分别为 _1, _2, _3, ..., _N. 它的作用是告诉编译器,这个参数我目前用它来占个坑,以后填. 1. std::function 为了讲丑陋的函数指针简化,也为了提供现代语言一般都有的闭包,C++ 11提供了std::function类型来表示函数,同时也可以用来表示lambda 表达式(等同于Objec…
首先看代码,我在Helloworld中添加两个函数. void HelloWorld::addTarget(){ Size visibleSize = Director::getInstance()->getVisibleSize(); auto target = Sprite::create(, , , )); int cSizeH = target->getContentSize().height; int cSizeW = target->getContentSize().widt…
cocos2d-x 中的坐标系是笛卡尔坐标系,向右为 x 轴正方向,向上为 y 轴正方向,以像素为单位 原点在屏幕左下角的坐标系叫世界坐标系,是整个游戏中的根基,直接添加到场景中的节点,设置的位置都是指世界坐标系,getPosition 返回的都是世界坐标系 每个节点都可以当做一个坐标系,节点坐标系的原点位于其内容的左下角,节点添加子节点时, 子节点设置的位置,按照父节点的坐标系,当父节点的坐标变化时,子节点也做相同的变化,即子节点相对父节点不变:节点坐标系是坐标系中的坐标系,分析某个节点坐标一…
在 cocos2d-x 开头配置(Windows 平台)中,介绍了新建工程,这篇就介绍下 cocos2d-x 的一些概念.(前提是需要有C++的面向对象的基本知识和C++11的常用知识) 层,场景,导演,精灵,菜单 打开新建的工程(不管是VS,XCODE, Eclipse对 cocos2d-x 都一样),在 Classes 下找到 AppDelegate.h  AppDelegate.cpp  HelloWorldScene.h  HelloWorldScene.cpp 暂时先不管 AppDel…
一.    Cocos2d-x for Windows Phone 到2013年底,几大手游引擎都陆续支持WP8了,特别是Unity3D和Cocos2d-x.有过游戏开发经验的朋友们应该对这两个引擎不陌生,WP8对Native C++的支持,使得其他平台上用C++编写的游戏移植到WP8平台上变得非常简单.Cocos2d-x在2.2.1版本之前在WP8上只支持纯Direct3D工程模式,目前在Github上已提供了支持XAML的混合托管模式,传送门:https://github.com/MSOpe…
cocos2d-x 中,字体文件需要保存在 fonts 文件夹中,如果字体路径中没有 fonts/ 会自动添加上这个文件夹. 如果字体名称没有 .ttf 后缀,也会自动加上这个后缀. unsigned char* CCFreeTypeFont::loadFont(const char *pFontName, ssize_t *size) { std::string lowerCase(pFontName); std::string path(pFontName); ; i < lowerCase…
1.在游戏开发中,帧率很大程度上体现了游戏的流畅度,帧循环是游戏中一个很重要的概念 2.下面用伪代码实现了cocos2dx中的帧循环 /*main函数调用*/ CCApplication::sharedApplication()->run(); /*游戏真正的入口,完成精灵的布置和场景的初始化*/ applicationDidFinishLaunching(); /*帧循环开始*/ ) { CCDirector::sharedDirector()->mainLoop(); /*绘制场景*/ d…
在cocos2dx中使用纹理图集是非常节省资源的,在这里推荐 TexturePacker,而且 TexturePacker工具的加密接口也非常的好用,下面就来介绍一下... TexturePacker 工具的加密,只是相对于一般使用的基础上增加了几步对密码操作的步骤(目前的加密功能仅适用于.pvr.ccz格式): 一.生成密码(图形化界面和命令行两种方式) 方式一:图形化界面生成密码 密码可以自己手动过输入,或者使用下面的这几个按钮,完后点击外面的空白区域就自动保存了... (2)shell脚本…
作者:HU 转载请注明,原文链接:http://www.cnblogs.com/xioapingguo/p/4037323.html  cocos2dx中没有直接解压文件的,自己网上找了个,记录一下. static unsigned long _maxUnzipBufSize = 0x500000; static bool unzip(const char *zipPath,const char *dirpath,const char *passwd) { CCLOG("unzip fullpa…
  标签: Android百度地图API Key  分类: Android 百度地图开发(2)    最近自己想研究下地图,本来想研究google Map,但是申请API key比较坑爹,于是从百度地图入手,其实他们的用法都差不多,本篇文章就带领大家在自己的Android项目中加入百度地图的功能,接下来我会写一系列关于百度地图的文章,欢迎大家到时候关注!   一 申请API key 在使用百度地图之前,我们必须去申请一个百度地图的API key,申请地址http://lbsyun.baidu.c…
在Cocos2d-x中能够使用的字符串constchar*.std::string和cocos2d::__String等,其中const char*是C风格的字符串,std::string是C++风格的字符串,它封装了const char*.cocos2d::__String才是Cocos2d-x引擎提供的字符串类,这些字符串都可以互相转换,它们会在不同的场景下使用,具体使用那个可以看具体的API. 使用const char*和std::string 我们在C++中两种类型都可以使用,但是std…
1.首先明确几个概念: 设计分辨率:designResolution,即资源图片的设计尺寸,即美工给你的资源图片的大小,比如(641*964) 屏幕分辨率:又叫帧的大小,glview->setFrameSize(480,640); 这是指你的设备的屏幕的大小,通常手机的屏幕分辨率也就那么几种固定的大小,如480*320,1024*768,等等,在win32模拟器,或其他模拟器中,也指模拟器屏幕的大小. 2.疑问,既然图片是为手机屏幕服务的,干嘛搞这么多概念,直接一切以屏幕为中心不就得了,所有资源…
cocos2dx中提供了三种基本的数据类型:CCString(字符串),CCArray(数组),CCDictionary(数据字典(哈希的功能)) 2.CCString的用法 class  CCString : public CCObject,可见CCString本质是一个CCObject,因此支持create方法和其他CCObject的特性 a.CCString的创建: CCString *str=CCString("abc"); CCString *str=CCString::cr…
CCRect是cocos2dx中的一块矩形区域 常用于碰撞检测及渲染时限定纹理的大小 CCRect rect=spr.boundingBox(); CCRect rect=CCRect(0,0,spr.width,spr.height); CCRect rect=CCRect(spr->boundingBox().origin.x,spr->boundingBox().origin.y,spr.size().width,spr.size().height); //boundingBox().o…
CCAction是cocos2dx中专门用来处理动作相关的类,几乎所有的与动作相关的类都是从它派生而来的.而CCAction继承自CCObject class CCFiniteTimeAction : public CCAction 由CCFiniteTimeAction 派生出的两个主要类分别是: 瞬时动作 CCActionInstant 持续性动作 CCActionInterval 瞬时动作: 即时间间隔为0的动作,实质上要到下一帧才能执行的动作. 瞬时动作是指能立刻完成的动作,是CCFin…
1.内存管理的两大策略: 谁申请,谁释放原则(类似于,谁污染了内存,最后由谁来清理内存)--------->适用于过程性函数 引用计数原则(创建时,引用数为1,每引用一次,计数加1,调用结束时,引用计数减1,当引用计数为0时,才会真正释放内存) --------->适用于注册性函数(消息处理,中断等场合) 2.cocos2dx中的内存管理采用引用计数和内存托管的原则 spr->retainCount();//获取对象的引用计数值 spr->retain();//引用计数加1 spr…
cocos2dx中的定时器分三大类: 1.帧循环定时器 2.一次性定时器 3.自定义定时器 一.帧循环定时器,顾名思义,每一帧都会执行一次,用于实时性要求比较高的场合,如碰撞检测 void scheduleUpdate(void);//其实是schedule+Update的组合,即定时执行Update函数的意思 --------启动定时器 virtual void update(float delta);//这是需要自己实现的虚函数,我们重载(override),update方法以执行我们自己的…
我们下边介绍如何通过SQLite3提供的API实现MyNotes数据库创建.创建数据库一般需要经过如下三个步骤.(1) 使用sqlite3_open函数打开数据库.(2) 使用sqlite3_exec函数执行Create Table语句,创建数据库表.(3) 使用sqlite3_close函数释放资源.在这个过程中,我们使用了三个SQLite3 API函数,它们都是纯C语言函数.在Cocos2d-x中通过C++调用C函数当然不是什么问题,NoteDAO.cpp中的NoteDAO::initDB(…