godot2D游戏教程系列二(8)

前言:

完成目标

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

具体实现了:

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

最终效果:

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

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


*

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


*

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


*

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


*

  • 然后你可以发现我们画的这后面三块瓦片就连起来的,然后我们放置一下瓦片,并且左上角调试那里显示碰撞区域再进行启动游戏
  • 然后我们就看到那个墙的碰撞形状,玩家角色也是被挡住了
  • 这里我们觉得玩家角色的影子太实了。我们让影子变的透明一些,我们来到玩家场景的2d阴影精灵节点点击左边检查器的可见性Visibility属性,点击Modulate然后设置透明度为150
  • 接下来我们继续绘制瓦片的物理层,把所有的外角都进行绘制一下就是这个样子(这里是还没处理内角),提示你画完左边的就有些碰撞形状可以复用到右边那里
相关推荐
智者知已应修善业2 小时前
【51单片机89C51及74LS273、74LS244组成】2022-5-28
c++·经验分享·笔记·算法·51单片机
奋斗的小乌龟2 小时前
langchain4j笔记-06
笔记
·醉挽清风·3 小时前
学习笔记—MySQL—库表操作
笔记·学习·mysql
白小沫4 小时前
TortoiseSVN是什么?
学习
weixin_451431564 小时前
【学习笔记】微博视频页面ajax请求与响应数据分析
笔记·学习·音视频
清辞8535 小时前
尾盘选股法程序开发学习初期
学习
Century_Dragon6 小时前
让实训“活”起来——信息化综合实训考核平台助力汽车专业教学
学习
快乐得小萝卜6 小时前
OpenVLA 论文精读笔记
笔记
nashane6 小时前
HarmonyOS 6学习:PanGesture手势驱动月亮半圆轨迹“滚动”术
学习·harmonyos 5
叶~小兮7 小时前
K8S进阶核心综合学习笔记(持久化存储+特殊容器+调度管理)
笔记·学习·kubernetes