欢迎光临散文网 会员登陆 & 注册

godot 随机地图2-tilemap

2023-05-17 17:26 作者:damedown  | 我要投稿

着色器语言和计算机视觉对地图生成的操作放在tilemap之后。

因为godot语言并不是c++,指针的使用非常麻烦,那就使用传统的一顶帽子全部扣下。

如果只用代码可以更加方便,但是为了阅读直观,我还是在node下面instances需要使用的class。


pre:

    对昨天的结构进行修改

    对代码进行修改


    针对上次需要getdata,但是得到的结果并不是统一的,因为返回的数据是RGBA,这导致125*125 返回的大小大于15,625。为了直接点,现阶段不使用getdata,而是直接get_pixel。

    

运行结果

 一、生成tile

    我大概画了1小时才搞清楚4.0tilemap的操作,虽然这东西人人都可以独立发明一次,在tilemap的func中,并没有什么奇奇怪怪的操作,

最重要的就是set cell,真的艹了他弄成这样。

set_cell(0,vec2i(x,y),0,vec2i(0,0))

第一个0是所在的图层,我命名为01,因为为了方便阅读,弄成00太艹了。

vec2i(x,y),所在的坐标

第二个0,为basetile的 id,因为现在还有一个tileset

vec2i(0,0),为使用的atlas的卓彪,第一个 绿色的 编号为0,在tileset的cord为(0,0)


具体参考这里

https://youtu.be/ztPbGyQnKPo?t=394

二、完整代码

运行效果

noise的texture我还是用sprite显示出来了

下面的黄色,为了调整坐标,简单弄得

绿色的部分就是生成的tile



三、给tile添加碰撞

1、点击tileset

出现新的ui,点击 physics layers


加一个

2、去绘制中画出碰撞体

全碰撞

这样就可以了。


总结:godot的有100中获取tilemap信息的功能,缺只有一种设置tile的功能。这不布局,反正4.0.2的tile操作不是很友好,希望后面更新。但是框架很大哦。还是和期待的。

godot 随机地图2-tilemap的评论 (共 条)

分享到微博请遵守国家法律