Godot学习记录(二)

godot英文文档:Godot Docs – 4.2 branch — Godot Engine (stable) documentation in English

一、gdscript

设置:编辑器->编辑器设置->文本编辑器,勾选类型提示,这样可提高运行效率

没设置之前

@onready var char_blue_1 = $CharBlue1

设置之后

@onready var char_blue_1:Sprite2D = $CharBlue1

Tips: 按住Ctrl再点击函数,可跳转到godot内置的函数文档。

1.变量

 (1)var varible_name = value(声明+赋值,此时变量类型可变)

var varible_name: int(声明整型变量,类型不可变)

var varible_name(声明变量,没有赋值,此时访问该变量,值为null)

var varible_name := 1(自动判断类型,类型同样不可变)

var varible_name :=1 :

        set(v):

                if v>0:

                        varible_name = v

(属性修饰符,类似python中@property)

数组:

var weapons = [“123”,“123”]

weapons.size()#长度

weapons.append("456")  #在尾部放一个元素

weapons.pop_back() #从最后面取元素

weapons.pop_front() #从前面元素

对象:

var hero = {

        "hp": 20,

        "mp": 10,

}

hero["hp"]  #拿出属性
hero["hp"] -= 1

for tmp in hero:
    print(tmp, hero[tmp]) #输出 属性,属性值
  

2.类

在文件头部声明类名称即可

eg:

class_name MyPlayer

var name := "class" 

3.循环

for i in 5:

        pass

(循环执行5次,i的数值从0开始增)

4.函数

func _ready() -> void:

        pass

(开始时调用,类似unity中private void start(){})

二、场景相机

顺便一提,画地图时,按住Ctrl键之后点击已画图块,就可以使用点击的图块,按Ctrl后选中一列图块就可以用这一列图块画,Ctrl+shift就可以画一个矩形区域

1.在Player的节点下建一个Camera2D

相机死区:Drag里面调整,相机范围:limits里面调整,editor里勾选draw,就能可视化调整

position smoothing为位置平滑,可让相机移动更丝滑,从标尺上拖下参考线,可以量场景边界,然后填在limits里面,为防止玩家掉出场景,可在边框处加围栏或者用代码限制。如果你嫌麻烦,下面有一些参考代码,可以自动设置限制。

Limite里面有个smooth,勾选这个可以让地图在碰到了边界时的减速也是平滑的

extends Node2D

@onready var tile_map: TileMap = $TileMap
@onready var camera_2d: Camera2D = $Node2D/Camera2D

func _ready() -> void:
	var used := tile_map.get_used_rect()
	var tile_size := tile_map.tile_set.tile_size
	
	camera_2d.limit_top = used.position.y * tile_size.y
	camera_2d.limit_left = used.position.x * tile_size.x
	camera_2d.limit_right = used.end.x * tile_size.x
	camera_2d.limit_bottom = used.end.y * tile_size.y
	#放止一开始player在限制区域外导致有一个奇怪的运镜
	camera_2d.reset_smoothing()  
	

三、画地图

按Ctrl键在TileSet中拖动即可选中图块,右键可删除,然后新建terrain set,选match conners,按照角落来匹配。绘画时,在填充中选择属性-terrain-terrain set 0-填充,之后绘制颜色。匹配规则:能拼到一起的颜色相同。画好后长这样:

tips:对于有些图块,比如较高的蘑菇,可以在TileSet中扩展一个图块,之后设置纹理原点,这样可以让绘制地图更轻松,设置纹理原点时,可使用绘制选项批量绘制。

蘑菇太多?只需到属性-》概率这儿更改 

地图有许多层,可在 layers中增加,然后在绘制界面上方的下拉选框中挑选图层画

四、视差背景 

(1)添加parallaxBackground并在其下添加parallaxLayer,可按喜好更名,我添加了一个天空层,远处的树林层,和近处的树叶层。要添加图片只需在parallaxLayer中将图片作为子节点添加。

motion中的scale为相对移动速度,数值越小,越适用于远景。scale中默认X和Y是一样的,若想不一样,就点击右侧链条,就可分别设置。游戏水平距离通常长,此时背景图片可能不够用,会穿帮,此时可在mirrror中将x设为图片宽度即可(384px)。之后添加山脉和树木,使用region选取部分,Ctrl+D可以复制节点

注:有时候场景衔接处会出现白线,,这是因为godot中region属性与渲染属性的冲突,可设置

项目-项目设置-2D 渲染自动吸附或者使用单独的图片,或者把图片放置的稍微重叠一些,都可解决问题。

设置,置顶可以使运行的debug窗口置顶,显示-窗口-置顶,方便调整

画好后编组,锁定,放止不小心改动 

  • 15
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值