godot2D游戏教程系列二(8)

前言:

完成目标

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

具体实现了:

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

最终效果:

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

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


*

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


*

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


*

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


*

  • 然后你可以发现我们画的这后面三块瓦片就连起来的,然后我们放置一下瓦片,并且左上角调试那里显示碰撞区域再进行启动游戏
  • 然后我们就看到那个墙的碰撞形状,玩家角色也是被挡住了
  • 这里我们觉得玩家角色的影子太实了。我们让影子变的透明一些,我们来到玩家场景的2d阴影精灵节点点击左边检查器的可见性Visibility属性,点击Modulate然后设置透明度为150
  • 接下来我们继续绘制瓦片的物理层,把所有的外角都进行绘制一下就是这个样子(这里是还没处理内角),提示你画完左边的就有些碰撞形状可以复用到右边那里
相关推荐
hunterkkk(c++)5 分钟前
学习dijkstra算法(c++)
c++·学习·算法
AI浩7 分钟前
学习率调度分层式精讲:Warmup、Cosine、Linear Decay 与大模型训练节奏(分层式精讲)
学习
我命由我1234510 分钟前
Excel - Excel 覆盖模式与编辑模式
运维·学习·职场和发展·excel·求职招聘·职场发展·运维开发
H_老邪11 分钟前
Docker 学习之路-Linux安装指定版本docker
学习·docker·容器
「維他檸檬茶」15 分钟前
大模型算法学习6.3
学习
wanzehongsheng18 分钟前
光伏公共设施通信协议与物联网管理平台技术选型笔记
人工智能·笔记·物联网·能源·光伏·光伏支架·光伏太阳花
数智工坊23 分钟前
周志华《Machine Learning》学习笔记--第五章--神经网络
人工智能·笔记·神经网络·学习·机器学习
博览鸿蒙33 分钟前
[特殊字符]AI+FPGA 全栈学习大纲【就业版】定位
人工智能·学习·fpga开发
红藕香残玉簟秋34 分钟前
【Rust学习】windows安装rust
开发语言·学习·rust
就叫飞六吧38 分钟前
关于 PowerShell 核心 API 的系统性科普
笔记