`

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

    博客分类:
  • ios
 
阅读更多

 

-(CGPoint) tilePosFromLocation:(CGPoint)location tileMap:(CCTMXTiledMap*)tileMap
{
	// Tilemap position must be subtracted, in case the tilemap position is not at 0,0 due to scrolling
	//如果是retina屏幕,需要将像素乘2
	CGPoint pos = ccpSub(location, tileMap.position);
	float halfMapWidth = tileMap.mapSize.width * 0.5f;
	float mapHeight = tileMap.mapSize.height;
	float tileWidth = tileMap.tileSize.width;
	float tileHeight = tileMap.tileSize.height;
	
	CGPoint tilePosDiv = CGPointMake(pos.x / tileWidth, pos.y / tileHeight);
	float inverseTileY = mapHeight - tilePosDiv.y;

	// Cast to int makes sure that result is in whole numbers, tile coordinates will be used as array indices
	float posX = (int)(inverseTileY + tilePosDiv.x - halfMapWidth);
	float posY = (int)(inverseTileY - tilePosDiv.x + halfMapWidth);

	// make sure coordinates are within isomap bounds
	posX = MAX(0, posX);
	posX = MIN(tileMap.mapSize.width - 1, posX);
	posY = MAX(0, posY);
	posY = MIN(tileMap.mapSize.height - 1, posY);
	
	pos = CGPointMake(posX, posY);

	CCLOG(@"touch at (%.0f, %.0f) is at tileCoord (%i, %i)", location.x, location.y, (int)pos.x, (int)pos.y);
	//CCLOG(@"\tinverseY: %.2f -- tilePosDiv: (%.2f, %.2f) -- halfMapWidth: %.0f\n", inverseTileY, tilePosDiv.x, tilePosDiv.y, halfMapWidth);
	
	return pos;
}

 

算法的解释:http://www.gandraxa.com/isometric_projection.xml

分享到:
评论

相关推荐

    第06章 TMX瓦片地图.zip

    总之,TMX瓦片地图是2D游戏开发中的强大工具,通过Sample6_1.zip中的示例,开发者可以学习如何创建、编辑和在游戏中应用TMX地图,提升游戏设计的效率和质量。理解TMX格式的工作原理和应用方法,对于任何希望涉足2D...

    TMX地图编辑器(tIDE Tile Map Editor) v2.07.rar

    在程序中显示TMX地图 先显示出来看看努力的效果,之后再慢慢完善。 把GameScreen构造函数中的说明Label删除,添加CCTMXTiledMap 代码很简单如下 private GameScreen() { CCTMXTiledMap tmxmap = CCTMXTiledMap....

    tmx资源包含PNG

    在TMX地图中,PNG图片通常作为图块集(Tileset)的一部分,这些图块可以被拼接起来形成游戏地图的各个部分。 【描述】"随便乱涂的地图,推荐大家自己做一张"提示我们这是一个示例性质的地图,可能是为了教学或演示...

    强大的Unity3d插件UniTiled导入tmx tiled地图

    用于unity2018以上版本 TMXTiled 瓦片地图 处理.tmx后缀的tiled瓦片地图。 UniTiled 是Unity的插件,允许您导入Tiled地图而无需任何第三方软件。当前功能包括: - 导入地图和图块集 - 支持层和顺序 - 支持单个...

    tmx:C tmx地图加载器

    【tmx:C tmx地图加载器】是一种专为游戏开发设计的C语言库,它能够帮助程序员方便地在游戏中加载和管理tmx格式的地图数据。TMX格式是Tiled Map Editor软件所采用的一种广泛使用的地图数据存储格式,允许开发者以直观...

    cocos2d-x学习笔记(15)--地图的使用(TMX).rar

    TMX地图是cocos2d-x支持的一种地图格式,由Tiled Map Editor工具生成。它允许开发者以直观的图块(Tile)形式构建游戏世界,每个图块可以代表游戏中的不同地形或装饰元素。通过组合这些图块,可以创建出丰富的游戏...

    TMX Editor TMX 翻译记忆交换文件编辑与格式转换软件

    翻译专业必备软件。...1.支持打开、浏览、编辑TMX翻译记忆交换软件。 2.支持TMX转为Excel文件。 3.支持TMX转为CSV文件。 4.支持TMX转为TXT文件。 5.支持打开Excel文件。 6.支持打开CSV文件。 7.支持打开TXT文件。

    TMX官方忍者游戏cocos2d-x实现(三)

    本文将主要围绕TMX地图在Cocos2d-x中的应用进行讲解。 首先,让我们了解TMX文件格式。TMX文件是Tiled Map Editor导出的地图数据文件,它包含了地图的层、对象、图像集等信息,以XML格式存储。通过解析TMX文件,我们...

    tiled-0.15.2-win64 TMX 地图安装包

    tiled-0.15.2-win64 TMX 地图安装包

    TMX官方忍者游戏cocos2d-x实现(一)

    7. **物理引擎**:虽然TMX地图主要用于静态布局,但cocos2d-x支持Box2D物理引擎,可以实现碰撞检测和物理模拟,使游戏中的角色和其他物体有真实的运动表现。 8. **脚本系统**:cocos2d-x支持Lua和JavaScript作为...

    tmx解析器tmxparser.zip

    tmxparser 是一个用来解析 Map Editor 生成的 tmx 地图文件的 C 库。特性:遵循 TMX specification page.修饰和解压堆叠数据可解析整数、实数和字符串属性可解析内存中的地图文件不依赖任何图形库支持动画 ...

    txt2tmx_v2.0.zip

    《txt2tmx_v2.0.zip:分隔符文本转换为TMX格式详解》 在翻译领域,TMX(Translation Memory eXchange)是一种广泛使用的标准格式,用于存储和交换翻译记忆库(Translation Memory, TM)数据。Text2tmx v.2.0 是一个...

    tiled-qt-0.4.0.zip_TMX QT_qt 地图_tiled_tiled qt_地图

    Tiled QT 0.4.0 是一个基于Qt框架的开源地图编辑器,它专为游戏开发者设计,支持TMX(Tiled Map eXporter)格式,使得创建、编辑和管理2D游戏地图变得异常简单。这个版本的Tiled QT包含了丰富的功能和特性,为用户...

    美国AstroNova瞬态记录仪TMX

    美国AstroNova瞬态记录仪TMX,丢弃传统的按键旋钮和各种复杂的配置,模块化的设计支持现场配置,无论你有什么测试需求,TMX都可以满足,一个系统即可支持多种信号类型的输入。比如将压力传感器、应变仪、热电偶、...

    Python库 | panda3d_tmx2bam-0.0.251-py3-none-any.whl

    这个库的出现,简化了将Tiled编辑器创建的2D地图数据导入到Panda3D中的过程,使得开发者无需手动转换或者编写复杂的脚本就能处理TMX地图。 在Python 3环境下,该库可以通过pip安装,`pip install panda3d_tmx2bam-...

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

    在Cocos2d-x中,我们使用`cocos2d::TMXTiledMap`类来加载和操作TMX地图。通过Tiled编辑器,我们可以方便地设计地图,并保存为`.tmx`文件。 1. **安装与使用Tiled编辑器** - 首先,你需要下载并安装Tiled编辑器...

    gosu-tmx:Ruby Gosu 的另一个 TMX 地图加载器

    最终,一个可用的 TMX 地图加载器与 Gosu 一起工作,并且不在乎您使用的是 Chingu 还是您自己设计的一些本土游戏引擎。 为什么在地球上 我喜欢 Chingu 并且已经存在一个 TMX 加载器,但它不是我想做的事情的正确工具...

    TMX官方忍者游戏cocos2d-x实现(二)

    总的来说,"TMX官方忍者游戏cocos2d-x实现(二)"这个项目涉及了Cocos2d-x的TMX地图加载、碰撞检测、游戏对象状态管理以及资源组织等多个关键知识点。通过这个项目,开发者不仅可以学习到Cocos2d-x的基本用法,还能...

    ASUS华硕P5B-TMX、P5B-TMX/S主板BIOS

    【华硕P5B-TMX、P5B-TMX/S主板BIOS详解】 华硕P5B-TMX和P5B-TMX/S主板是华硕公司为满足TCL、方正、清华同方等品牌电脑制造需求而设计的主板产品。它们基于Intel的965/975芯片组,支持LGA 775接口的处理器,尤其是...

Global site tag (gtag.js) - Google Analytics