当前位置: 首页 > news >正文

Godot开发2D冒险游戏——第三节:游戏地图绘制

一、初步构建游戏地图

在游戏场景当中添加一个新的子节点:TileMapLayer

这一层称为瓦片地图层

根据提示,下一步显然是添加资源

为TileMapLayer节点添加一个TileSet

将地板添加进来,然后选择自动分割图集

自定义时要确保大小合适

让Godot自动随机选择一部分地图,然后我们再精修

增加纯绿草地被选中的概率:

在TileMap当中选择一块草地,使用矩形覆盖地图,注意调整主角和地图的层级次序

让摄像头随着主角移动——将摄像头放到主角的内部跟着主角移动

现在还只有草地,我们再添加一个地面图

我们选择草地图层,然后创建一个副本(ctrl+D),命名为FloorLayer,两个图层是独立的,单独修改任意一个图层不会影响别的图层,但是下面的子图层在游戏运行时会覆盖在父图层上面

然后在Floor图层下,使用橡皮擦擦除草地图像,然后取消橡皮擦和筛子,选择一个地面图像,使用铅笔来绘制地面图层

左键绘制,右键是取消绘制

二、让游戏的草坪更加真实

引入Terrain

匹配边和角:可以匹配更多的细节

★ 最终样式:(细节还需要再学习一下)

然后进入TileMap来重新绘制地形图

把边重新描一下,尽量增加点地面的宽度

这样效果就好多了:

三、添加障碍物

再添加一个TileMapLayer,取名为ObstacleLayer,并移动到Player的上层去

然后为TileSet添加资源

注意:这次不再自动分割图集

因为一棵树需要占用4个方块,需要手动设置4个方块作为一个Tile

先在设置里点击:

然后增加一个tile的大小,4个小Tile组成一个大Tile

运行之后

问题1:角色总是在图层上面  》使用Ysorting技术解决

问题2:角色可以之前从树的正面/侧面穿进去 》添加碰撞检测

问题1解决:Ysorting:

给ObstacleLayer启用Ysorting

然后将Player放到ObstacleLayer图层的内部

设置纹理原点的位置 

如果玩家的位置低于纹理原点,将玩家显示在树的前面,如果玩家的位置在纹理原点之上,它就被显示在树的后面

本例当中我们可以将纹理原点向下调整一些

问题2解决:

添加障碍物的碰撞图形

由于希望玩家可以在树后面移动,可以把碰撞图形添加在树前面

运行,但是现在玩家像是碰到玻璃墙一样不自然

为此我们可以调小玩家的碰撞域

添加更多的树木到我们的游戏当中:

再添加一个障碍物

设置纹理原点

绘制碰撞图形

在TileMap当中选择图案,就可以在地图当中绘制了

游戏最终效果:

2d4

okok,今天的你就到此为止吧,明天还要接着🐺啊!🎈🎈🧡

相关文章:

  • 【Hive入门】Hive基础操作与SQL语法:DML操作全面解析
  • uniapp+vue3表格样式
  • 心磁图技术突破传统局限!心血管疾病早筛迈入“三零“新时代
  • 神经网络笔记 - 神经网络
  • 2025年大一ACM训练-搜索
  • VScode在 Markdown 编辑器中预览
  • 聊一聊接口测试的核心优势及价值
  • echarts自定义图表
  • AI与智能农业:如何通过精准农业提升作物产量与资源使用效率?
  • Linux进程学习【环境变量】进程优先级
  • AUTOSAR_Feature_Model_Analysis
  • c++流对象
  • 智慧水库与AI深度融合的实现方案及典型应用场景
  • MySQL快速入门篇---增删改查(下)
  • LeetCode 24 两两交换链表中的节点
  • 【深度好文】4、Milvus 存储设计深度解析
  • 【Nginx】负载均衡配置详解
  • 【2025最新Java面试八股】如何在Spring启动过程中做缓存预热?
  • kafka 中消费者 groupId 是什么
  • [python] 基于WatchDog库实现文件系统监控
  • 幸福航空五一前三天航班取消:客服称目前是锁舱状态,无法确认何时恢复
  • A股三大股指收跌:地产股领跌,银行股再度走强
  • 广东一公司违规开展学科培训被罚没470万,已注销营业执照
  • 点燃“文化活火”,上海百年街区创新讲述“文化三地”故事
  • 国家统计局:一季度规模以上工业企业利润延续持续恢复态势
  • 哈马斯同意释放剩余所有以方被扣押人员,以换取停火五年