godot2D游戏教程系列二(8)

前言:

完成目标

成功为墙体瓦片添加了真实的碰撞体,让玩家无法穿墙。

具体实现了:

  • 记得保存工程(避免白做)
  • 给瓦片地图添加物理层
  • 将绘制属性切换为"物理层"
  • 手动为每块墙体瓦片绘制多边形碰撞形状
  • 开启网格吸附(数值8),让碰撞点更精准
  • 为不同墙体瓦片分别设置碰撞体
  • 启动游戏测试,确认角色会被墙挡住
  • 调整玩家影子透明度,让画面更自然
  • 完成外角墙体的碰撞绘制(内角暂未处理)

最终效果:

现在墙不仅"看起来是墙",而且真的能挡住玩家,游戏从"画面展示"升级为"具备基础物理碰撞"的可交互场景。

  • 实现过程:
  • 在这里笔者遇到了自己忘记保存关电脑的事情,所以朋友们记得一定要按保存啊!!!!
  • 我们需要先创建一个物理层,我们到瓦片地图层节点的检查中添加元素
  • 我们继续使用绘制模式,然后切换绘制属性为物理层,这里物理层默认的碰撞形状是正方形。不是完全匹配我们的瓦片的,所以我们要进行手动根据瓦片修改一下
  • 我们需要自定义一下这个碰撞形态与墙体轮廓相匹配,所以我们点集绘制模式旁边的那个笔的图标也就是拾取工具,我们选取一下左下角的瓦片,这样子我们的碰撞形态的本体就是我们选取的瓦片
  • 然后我们点击那个扩展的图标,进行放大视图


*

  • 然后我们需要在这个图块上绘制碰撞形状,我们启用网格吸附模式,并且改为8


*

  • 这样子我们创建多边形的时候,这个点总是会吸附到这个网格上。然后我们点击网格来创建第一个碰撞形状,我们选择添加多边形工具
  • 接着我们依次点击就好了,顺时针依次点击,注意这里撤回上一步的话是直接退回到了新建物理层了,所以要注意一下
  • 绘制好之后我们回到瓦片那里,我们只需要轻点一下我们先前选取的瓦片就可以设置好它的碰撞形态了
  • 接着我们选取第二块瓦片来设置它的碰撞体形状


*

  • 继续操作画第三块瓦片
  • 继续操作画第四块瓦片


*

  • 然后你可以发现我们画的这后面三块瓦片就连起来的,然后我们放置一下瓦片,并且左上角调试那里显示碰撞区域再进行启动游戏
  • 然后我们就看到那个墙的碰撞形状,玩家角色也是被挡住了
  • 这里我们觉得玩家角色的影子太实了。我们让影子变的透明一些,我们来到玩家场景的2d阴影精灵节点点击左边检查器的可见性Visibility属性,点击Modulate然后设置透明度为150
  • 接下来我们继续绘制瓦片的物理层,把所有的外角都进行绘制一下就是这个样子(这里是还没处理内角),提示你画完左边的就有些碰撞形状可以复用到右边那里
相关推荐
xhyyvr2 小时前
VR科普学习一体机|开启智慧安全教育新时代
学习·安全·vr
wanhengidc2 小时前
云手机 数据信息资源共享
大数据·运维·服务器·游戏·智能手机
Ama_tor2 小时前
FLASK|完整版学习(ALL)
python·学习·flask
航Hang*2 小时前
第2章:进阶Linux系统——第1节:配置与管理Samba服务器
linux·运维·服务器·笔记·学习
乐观勇敢坚强的老彭2 小时前
本周C++编程课笔记:for循环练习
java·c++·笔记
HyperAI超神经2 小时前
在线教程丨免费CPU资源快速部署,覆盖Qwen3.5/DeepSeek-R1/Gemma 3/Llama 3.2等热门开源模型
人工智能·深度学习·学习·机器学习·ai编程·llama·vllm
稽稽稽稽不如人2 小时前
《从零开始的java从入门到入土的学习生活——JavaWeb后端篇》Chapter15——JavaWeb后端篇学习记录——多表关系、多表查询、分页查询
学习·生活
今天你TLE了吗2 小时前
JVM学习笔记:第九章——StringTable字符串常量池
java·jvm·笔记·后端·学习
Amazing_Cacao2 小时前
品鉴师高级|全局判断成体系(精品可可,精品巧克力)
笔记·学习