`
wangweike
  • 浏览: 66504 次
  • 性别: Icon_minigender_1
  • 来自: Mars
社区版块
存档分类
最新评论

45度角磁砖地图

 
阅读更多
设计45度角地图最重要的一条规则是:需要为地图设计两个层,这样游戏角色才能在某些瓷砖后面走动。其中一层用来放地面上的物体和地板瓷砖,另一层用来放其它东西,例如与别的瓷砖重叠的瓷砖或者半透明的物品。地面层应该放在Objects层之上。注意在地面层里只放置完全不透明的地板瓷砖。其它物体都要放在Objects层里。

使用90度角图片生成45度角瓷砖:首先,正方形图片会被旋转45度角,然后在y轴方向将它
缩小成典型的45度角瓷砖的钻石形状。
在实际操作中,不能直接把90度角瓷砖直接旋转缩小成45度角瓷砖,因为旋转操作会影响图片里的内容。直接旋转缩小所得到的结果看上去还是2D的,而且视觉上完全不对。
最容易设计的45度角瓷砖是平的地板瓷砖


要给45度角瓷砖地图添加视觉上的深度,需要让瓷砖上画的物体超出钻石状瓷砖的边界。最常用的方法是将物体画成以45度视角观察的3D图形。而且要让物体超出瓷砖的边界,不过最多超出一块瓷砖的大小,玩家只能在同一时间看到瓷砖地图的一部分,45度角瓷砖不会由于离开屏幕远而变小。例如石门的上半部份超出了石门所在的瓷砖,延升到了上面一块瓷砖中,由此创造出视觉上的深度。


因为瓷砖是从后面开始往前渲染的,所以45度角瓷砖地图允许瓷砖相互叠加,这意味着离观看者近的物体瓷砖会叠加在离观看者远的瓷砖上,由此产生深度的感觉。
不过这要求要仔细设计单独的瓷砖和瓷砖地图,因为太多的瓷砖叠加或者叠加了错误的瓷砖会很容易就破坏深度的感觉。不要把形状类似的物体瓷砖叠加在一起,应该使用相同的或者类似的配色方案。例如,不能把水晶瓷砖直接放在石门后面,因为这两者之间缺乏对比,而且它们的轮廓线条还会重叠,从而破坏深度的感觉。

生成一个新的45度角瓷砖地图:Orientation 应该被设置为 Isometric。比较奇怪的是设置Tile size的宽度和高度。例如单块瓷砖的大小是 54x49 像素,钻石形状的大小是 54x27 像素,但是却设置为 52x26 像素。这是因为45度角瓷砖设计的时候考虑到了它们会相互叠加,所以对于大多数45度角瓷砖集来说,当把它们应用到Tiled软件中的地图上时,地图上的瓷砖宽度必须比瓷砖集里的钻石形状的实际宽度小2个像素,高度要小1个像素。使用上述瓷砖大小的像素值差别的目的是让瓷砖地图的边界成为一条直线,避免背景透过瓷砖而显示出来。因为不可能把钻石形状设计成可以让瓷砖之间的距离都相同,而又不相互叠加。


cc_vertexz属性
要想让角色被在它前面的建筑物,墙壁,树木等物体挡住的话,需要在角色移动时改变角色的vertexZ值。

在Tiled中创建物体层(Objects Layer)时,给这个层设置了一个名为cc_vertexz的属性,并且将它的值设为automatic。这个设定会指示cocos2d为物体层的瓷砖分配连续的
vertexZ值。??ertexZ值越小,相应的物体就离屏幕越远

因为在TileMapLayer类中,角色精灵是在加载了瓷砖地图以后再加载的,所以角色精灵会使用以所在瓷砖相同的vertexZ值进行渲染,从而覆盖在瓷砖上面。为了让精灵可以被物体瓷砖覆盖-也就是忍者可以躲到树木,建筑物等后面,我们要将角色精灵的vertexZ值减去1。

提供CC_DIRECTOR_INIT宏命令的原因是大多数游戏初始化cocos2d的时候所需的处理都是一样的。但是,当使用45度角地图时,需要改 变的地方是:首先需要开启OpenGL的depth buffer(深度缓冲),这样就可以对物体的z ordering拥有更好的控制权。其次CCDirector需要用到2D投影才能使用depth buffer。

90度角瓷砖地图的瓷砖坐标是从 左上角开始算起的-也就是左上角是瓷砖地图的原点(0,0)。但是对于45度角 地图,左上角这个原点不再存在了。因为地图被旋转了45度,所以地图顶部的 那块瓷砖成了地图的原点。地图往右下 角的方向,瓷砖的X轴值在增加;往左下角方向的话,则瓷砖的Y轴值增加。在 一张拥有30x30瓷砖的地图中,最底部那块瓷砖的坐标值就是(29,29)。??


不让角色在移动时穿过墙壁和山,需要在Tiled软件中给地图添加一个新层,将层的Opacity滑块移动到中间的位置。右键Tile Properties对话框中,添加一个名为 blocks_movement 的属性,将它的值设为 1。选中Collisions层,使用已经设置了blocks_movement属性的瓷砖,在地图上不让角色通过的地方,画出瓷砖,比如墙壁,山脉,房子等等所处的位置。

NPC就是None Player Character的缩写这是代表非玩家控制的角色。


45度角地图的左尖坐标位置是mapposition(0,0),顶尖位置是tileCoord(0,0)
CCTMXObjectGroup中的指标坐标也是在某个方块的左下点,即菱形的左顶点。

在编辑器上,CCTMXObjectGroup的x,y属性中的值是格子数,但是在cocos2d代码中用读取出来的是自动乘过块大小后在地图上的像素值,即mapposition。

45度斜角地图菱形坐标转换
http://cn.cocos2d-x.org/bbs/forum.php?mod=viewthread&tid=1432
http://www.cppblog.com/wc250en007/archive/2012/07/20/184285.html
分享到:
评论

相关推荐

    2D 45度斜角地图原理

    首先,2D 45度斜角地图并不是简单的正交视角,而是以45度角展示游戏世界,这使得地图看起来更有深度和立体感。这种视角在许多经典的角色扮演游戏(RPG)中被广泛采用,如《塞尔达传说》和《最终幻想》系列。实现这样...

    cocos2dx使用TiledMap创建斜45度地图场景

    - 使用拖放方式在地图上放置瓷砖,构建出斜45度视角的游戏场景。注意,由于isometric的特性,你需要考虑物体的位置和大小,以及它们在斜角视图下的相对位置。 3. **导出TMX文件** - 在设计完成后,保存地图为`....

    国外的cocos2d教学翻译。第三弹:第11节到第13节。

    这次分享的是系列教程的第三部分,涵盖了第11节至第13节,内容包括45度角瓷砖地图、物理引擎以及弹球游戏的实现。 第11章:45度角瓷砖地图(Isometric Tilemaps) 在这一章节中,我们将深入学习如何构建和管理45度...

    Cocos2d学习资料

    Cocos2D目录: 第一章:介绍Cocos2d 第二章: 开始学习 第三章: 基础知识 第四章: 你的第一个游戏(修正错误) ...第十一章: 45度角瓷砖地图(Isometric_Tilemaps) 第十二章: 物理引擎 第十三章: 弹球游戏

    cocos2d教程【15个文档】

    第1章-介绍cocos2d 第2章-开始学习 第3章-基础知识 第4章-你的第一个游戏 第4章-你的第一个游戏(修正错误) ...第11章-45度角瓷砖地图(Isometric Tilemaps) 第12章-物理引擎 第13章-弹球游戏 2D游戏中的技能特效

    iphone game cocos2d

    第1章-介绍cocos2d.pdf 第2章-开始学习.pdf 第3章-基础知识.pdf ...第11章-45度角瓷砖地图(Isometric Tilemaps).pdf 第12章-物理引擎.pdf 第13章-弹球游戏.pdf 第14章-你的第一个游戏(修正错误).pdf

    cocos2游戏开发教程(国外书籍译文)part2

    本教程涵盖了一系列章节,包括横向滚屏射击游戏、瓷砖地图、45度角地图、粒子效果、物理引擎以及弹球游戏的实现,旨在帮助开发者提升Cocos2D游戏开发的专业技能。 首先,我们来到第7章——“横向滚屏射击游戏”。这...

    Learn iPhone and iPad Cocos2D Game Development中文版

    第11章-45度角瓷砖地图(Isometric_Tilemaps):45度角瓷砖地图常用于策略或模拟类游戏,这一章会讲解如何创建和处理这种特殊的地图类型,以及相关的坐标转换和碰撞检测。 第13章-弹球游戏:通过实现弹球游戏,读者...

    cocos2d for iphone 开发教程

    第11章——“45度角瓷砖地图(Isometric Tilemaps)”进一步扩展了瓷砖地图的概念,介绍如何创建和处理45度角视角的地图。这种视角常用于策略游戏,让游戏世界看起来更立体。开发者将学习到如何处理这种特殊视角下的...

    Learn iPhone and iPad Cocos2D Game Development中文版(13章全)

    第11章“45度角瓷砖地图(Isometric Tilemaps)”则扩展了瓷砖地图的概念,介绍了45度角视图的实现,适用于策略或模拟类游戏。 第9章“粒子效果”介绍了Cocos2D的粒子系统,用于创建火焰、烟雾、光效等视觉特效,提升...

    cocos2d-iphone游戏开发pdf

    第十一章《45度角瓷砖地图(Isometric Tilemaps)》扩展了瓷砖地图的概念,讲解了如何创建45度角视角的游戏世界,这种视角常见于策略或模拟类游戏。 第十三章《弹球游戏》则通过一个弹球游戏的实例,展示了如何应用...

    斜角tmx 地图 根据点击坐标计算tmx坐标算法

    标题中的“斜角tmx地图”指的是使用Tiled Map Editor(TMX)创建的一种地图格式,它支持45度角的斜向视角,通常用于2D游戏开发中,以实现类似3D效果的视觉表现。TMX是XML为基础的文件格式,用于存储地图的结构、图块...

    Learn iPhone and iPad Cocos2D Game Development

    第10章《瓷砖地图(Tilemap)基础知识》和第11章《45度角瓷砖地图(Isometric Tilemaps)》则涉及到地图设计。开发者将学习如何使用瓷砖拼接出复杂的地图,以及如何处理45度角的视角,这对于创建像素艺术风格或者模拟...

    Learn iPhone and iPad Cocos2D Game Development(中文版)

    01 介绍cocos2d 02 开始学习 03 基础知识 04 你的第一个游戏 05 游戏构成要素 06 深入了解精灵 07 横向滚屏射击游戏 08 完成滚屏射击游戏 09 粒子效果 ...11 45度角瓷砖地图 12 物理引擎 13 弹球游戏

    libgdx 游戏地图的制作

    LibGDX提供了`OrthogonalTiledMapRenderer`和`IsometricTiledMapRenderer`,分别用于渲染正交和等角地图。你可以设置渲染器的缩放级别,控制地图在屏幕上的显示大小。通过调用`render()`方法,可以将整个地图绘制到...

    learn cocos2d on iphone 中文版PDF高清

    第1章 介绍cocos2d 第2章 开始学习 第3章 基础知识 第4章 你的第一个游戏 第5章 游戏构成要素 第6章 深入了解精灵 第7章 横向滚屏射击游戏 ...第11章 45度角瓷砖地图 第12章 物理引擎 第13章 弹球游戏

    cocos2d全集翻译版

    第1章-介绍cocos2d 第2章-开始学习 第3章-基础知识 第4章-你的第一个游戏(修正错误) 第5章-游戏构成要素 第6章-深入了解精灵 第7章-横向滚屏射击游戏 ...第11章-45度角瓷砖地图 第12章-物理引擎 第13章-弹球游戏

    tiled-0.7.2-bin地图编辑器.zip

    2. **新建项目**:创建新的地图,设置地图大小、单位尺寸和坐标系统,选择合适的渲染模式(正交、等角或六边形)。 3. **创建图层**:添加多个图层,分配不同的用途,如背景、地面、装饰物等。 4. **设计瓷砖集**...

Global site tag (gtag.js) - Google Analytics