各位同学,今天我们设计一个新场景,根据故事的线索,主人公夜晚杀死怪物后,将进入地宫开始新的征程,所以这节我们主要实现地宫的地形设计,地形设计我们在第七节到第十节有详细的介绍,这节就当复习了,还不了解地形设计的请跳转到第七节到第十节详细了解一下。
一、项目调整
在进行地形设计之前,我们还需要对项目进行一下调整,还记得我们刚建项目的时候,主人公显的非常小,我把相机放大了2倍的事情吗?现在就调整一下。
首先进入Player场景,将Camera2D节点的Zoom属性还原为1,这样相机就不会放大显示我们的主人公了。
然后切换到Camera2D节点的代码中,修改一行代码:将
tween.parallel().tween_property(self,"zoom",Vector2(2.00,2.00),0.12).from(_scale)
修改为
tween.parallel().tween_property(self,"zoom",Vector2(1.0,1.0),0.12).from(_scale)
那么主人公变得非常小,怎么办?单击菜单栏中的项目->项目设置,进入项目设置对话框找到显示->窗口,并开启高级设置。窗口宽度设为640,高度设为360;窗口宽度覆盖设为1280,高度覆盖设为720;拉伸模式选择Canvas_items,比例选择Keep,缩放为1;其他不变。
这样就修改完了,但是我们攻击敌人的时候,屏幕的颤抖有点大,还需要修改一下Player场景的根代码。修改函数代码如下:
func hit_effect():
$Camera2D._hit(Vector2(1.5,1.5),Vector2(6,-5))
$Camera2D.frameFreeze(0.1,0.09)
感觉主人公的头像和血量显示比较大,所以将StatusPanel结点的Control->Layout->Transform下的Scale还原为1。
二、地宫地形设计
1.新建场景和节点
新建Node2D场景,命名为underground,并把场景存放到Scenes目录下。为根节点添加TileMap子节点。并将主人公实例化到该场景。
2.设置TileMap节点
在文件系统中找到Sprites文件夹右键选择新建->新建文件夹,弹出对话框中命名为TileMap,将我们准备好的地形图片导入到该文件夹内。
选择TileMap结点,在检查器中,单击TileSet属性后面的下拉按钮,选择新建Tileset,然后选中,切换到TileSet面板,将我们的地形图片拖入到图块。在弹出的对话框选择否。
然后选择我们需要的地形。
切换到TileMap面板,在场景中绘制地图。
在tileset中添加物理层。
然后在Tileset面板中选择物理层。
把我们的墙壁加上碰撞,这样主人公就不会走出墙壁了。
最后我们的场景效果如下: