网站建设网站维护的具体内容是什么,app公司管理,wordpress gofair,东莞网站推广优化这节主要学习将场景添加到TileSet作为TileMap来搭建背景。同时#xff0c;主人公进入房子后面#xff0c;房子变得半透明#xff0c;离开房子后房子变的不透明。
一、创建新场景
首先导入房子素材#xff0c;最终文件系统内容如下#xff1a;
点击新建场景按钮#x…这节主要学习将场景添加到TileSet作为TileMap来搭建背景。同时主人公进入房子后面房子变得半透明离开房子后房子变的不透明。
一、创建新场景
首先导入房子素材最终文件系统内容如下
点击新建场景按钮然后选择其它节点在弹出对话框中找到StaticBody2D节点点击创建。
为啥选用StaticBody2D节点是因为房子是不可移动的符合StaticBody2D节点特征。StaticBody2D节点表示无法被外力移动的 2D 物理物体。无法因外力和接触而移动但可以通过代码方法手动移动。添加节点后会在节点后面有个叹号双击提示如下
给 添加连个子节点 一是Sprite2D节点将房屋的图片拖到该节点检查器texture内如下图
二是CollisionPolygon2D节点。然后在主场景中沿着房屋边缘绘制碰撞形状最终效果如下
最后保存该场景到Scenes文件夹下命名为House。
二、将场景添加到TileSet绘制背景
切换到TileSet面板把House场景添加到图块内第一步切换到TileSet选项卡第二步添加按钮选择场景合集第三步将House.tscn拖入到场景集合内这样就可以绘制背景了操作过程如下
切换到TileMap就可以在场景中绘制房屋了。
三、主人公走到房子后面房子变得半透明
切换到House场景在House结点下Area2D结点Area2D结点下添加CollisionShape2D结点CollisionShape2D检查器中shap属性选择RectangleShape2D表示2D 矩形。整个过程如下
选择House结点单击添加脚本按钮选择脚本存放路径为Scripts文件夹内如下
代码中只保留下一行其他删除。 extends StaticBody2D 然后选择Area2D结点在结点选项卡中将body_entered信号添加到House结点的文本中。
这样会在代码中添加func _on_area_2d_body_entered(body):代码。简单介绍一下body_entered信号和body_exite信号。 1.body_entered(body: Node2D)当接收到的 body 进入这个区域时发出的。body 可以是一个 PhysicsBody2D 或一个 TileMap。如果 TileMap 的 TileSet 配置了碰撞形状就会被检测到。需要将 monitoring 设置为 true 。 2.body_exited(body: Node2D)当接收到的 body 离开这个区域时发出的。body 可以是一个 PhysicsBody2D 或一个 TileMap。如果 TileMap 的 TileSet 配置了碰撞形状就会被检测到。要求 monitoring 被设置为 true 。 同理在House代码中添加body_exited信号。然后将代码完善成如下
extends StaticBody2D
onready var house $Sprite2D #获取房屋图片
func _on_area_2d_body_entered(body):#当主人公与入Area2D区域if body.namePlayer:#进入该区域的是主人公house.modulate.a 0.5#透明度设置为0.5
func _on_area_2d_body_exited(body):#当主人公离开Area2D区域if body.namePlayer:#走出该区域的是主人公house.modulate.a 1#透明度设置为1这段代码表示当主人公进入Area2D区域后房子变成透明当主人公离开Area2D区域后房子变为不透明。 最终演示效果如下所示
这一节就到此了同学再见