平铺地图(TMX)使用心得

编写一个游戏需要附带编写一个或多个游戏编辑器,这样能够更直观的生成、编辑游戏数据,提高生产力。

比如如果没有平铺地图编辑器,那么你该怎么做地图?手写数据,然后再打游戏里查看效果,再调整?如果这么做……光这么想想就够恐怖了。

所以编辑器非常重要,不要觉得写个编辑器浪费了时间,磨刀不误砍柴工。

其实游戏产业发展这么久了,必然会有编辑器,不用自己写啦。(*^__^*)

 

以前在学习中只用平铺地图做过RPG的地图,也就是铺铺瓷砖,并没有做过其它的事,后来也没有做RPG也就没有想过它了。

没有感受到它的博大精深,以至于以后浪费了不少时间。

近来在做跑酷类游戏,就是因为忽略了平铺地图以至于产生用代码生成随机地图的想法,结果浪费了半个月的时间。

用代码生成随机地图需要有很多的考虑:比如可移动地形的创建,是一条路、两条路还是三条路,是直路还是弯路等等;另外还有障碍物怎么摆,不能发生重叠更不能把路堵死了等等。

所以写代码来生成随机地图实在是累死人还没有结果,就算你是天才能轻易写出这个代码,可是在创建地图时需要大量的运算,那是幸福了关卡策划苦了设备性能。

另外关于地图碰撞,有些教程说再加一层添加碰撞瓷砖,其实没那么复杂,只需设置瓷砖属性,右键目标瓷砖设置。

这样在碰撞检测中读取A瓷砖属性就知道有没有碰撞A瓷砖,如果你不喜欢这样做,也可以先根据瓷砖属性生成碰撞层。

 

只要你的图层要随机样式就用平铺地图,不要想用代码生成地图,吃力不讨好。

 

 

转载于:https://www.cnblogs.com/rainstorm/archive/2013/02/25/2932786.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Otter 是一个用于读写 Translation Memory Exchange (TMX) 文档的 Java 类库。要求 Java 7 支持。示例代码:TMXReader reader = TestUtil.getTMXReader("/header.tmx"); List<TMXEvent> events = readEvents(reader); assertNotNull(events); checkEvent(events.get(0), START_TMX); // Check the header Header header = events.get(0).getHeader(); assertNotNull(header); assertEquals("TRADOS Translator's Workbench for Windows", header.getCreationTool()); assertEquals("Edition 8 Build 863", header.getCreationToolVersion()); assertEquals("sentence", header.getSegType()); assertEquals("TW4Win 2.0 Format", header.getTmf()); assertEquals("EN-US", header.getAdminLang()); assertEquals("EN-US", header.getSrcLang()); assertEquals("rtf", header.getDataType()); // Optional ones assertEquals(new TMXDateParser().parseDate("20100223T044327Z"), header.getCreationDate()); assertEquals("TESTERSON", header.getCreationId()); assertNull(header.getEncoding()); assertNull(header.getChangeDate()); assertNull(header.getChangeId()); List<Property> properties = header.getProperties(); assertEquals(3, properties.size()); checkProperty(properties.get(0), "type1", "Property", null, null); checkProperty(properties.get(1), "type2", "Property with o-encoding", "ASCII", null); checkProperty(properties.get(2), "type3", "Property with lang \"fr\"", null, "fr"); List<Note> notes = header.getNotes(); assertEquals(2, notes.size()); assertEquals(new Note("This is a note with an encoding.").setEncoding("ASCII"), notes.get(0)); assertEquals(new Note("This is a note with lang \"en\".").setLang("en"), notes.get(1)); checkEvent(events.get(1), END_TMX); 标签:Otter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值