godot制作割草游戏遇到的各种小白问题记录

最近迷上了类《吸血鬼幸存者》的割草游戏,所以打算   借鉴一下。

思来想去最后决定用brotato同款游戏引擎开发(  一个就用国外的开源游戏引擎godot4 beta3)

新人上手自然要踩坑,但是我踩过的你们就别再掉进去了,这一篇会随着的我学习过程不断更新的。

获取游戏窗口大小 godot4

DisplayServer.window_get_size()

sprite的宽高

sprite.texture.get_height()

创建实例 godot4

@onready var _enemy_sc = load("res://scene/enemy_base.tscn")

_enemy_sc.instantiate()

shader

godot3 - godot4

hint_color -> source_color

代码获取和设置shader参数

aniSprite.material.set_shader_parameter("progress",value)

多个实例公用一个材质,想单独改变其中一个的shader变量,可以复制一个材质

方法一:

var mat = aniSprite.get_material().duplicate()

aniSprite.set_material(mat)

aniSprite.get_material().set_shader_parameter("progress",0.0)

方法二:

设置materail的local to scene

单例

 

必须继承节点类 例如 Node2d,不然会在运行时报空

在每个主场景加载的时候会自动加载,类似单例

EventSingleton 全局单例信号发射中转

eventsingleton 项目设置autoload,然后

##只作为信号的监听,发射。中转站
extends Node
signal On_Get_Point
func event_get_point():
emit_signal("On_Get_Point")
EventSingleton.connect("On_Get_Point", _On_Get_Point)
EventSingleton.emit_signal("On_Get_Point")

godot3 ->godot4

onready ->@onready

tool -> @tool 

export -> @export

Godot4 beta3

实现了alt多行选择

collisionshape 新增debug color

load里面的路径和获取节点的路径都可以直接从左边资源目录、节点名录里拖过来。

 

Save和Load 存档

godot4

func save(content):
var file = FileAccess.open("user://save_game.dat", FileAccess.WRITE)
file.store_string(content)

func load():
var file = FileAccess.open("user://save_game.dat", FileAccess.READ)
var content = file.get_as_text()
return content

godot3应该是 File.open

加载json

var file = FileAccess.open("res://config/ability.json", FileAccess.READ) Abilities = JSON.parse_string(file.get_as_text()) for item in Abilities: print(item.name)

用字符串调用函数,且可以传参数

call("funcname"[,param1 ...])

call_derred

callv

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫叔大鸭梨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值