编译
https://gitee.com/mirrors/godot.git
python -m pip install scons
scons -j6 platform=windows
场景Scene
- Scene,Project由Scene场景组成,场景中所有对象继承Node(Node继承Object,Object包含所有图形和数据元素)。
- PackedScene,scene序列化,node需要设置了owner才能保存
- Scene Group:场景对象划分,方便消息分类传递和搜索。
生命周期:_enter_tree------_ready------_exit_tree (instance实例化和free释放)
Scene singleton:场景单例(Project Setting中设置,AutoLoad选项添加资源窗口中的全局脚本)
重要元素
- Node基本元素,可以分组和接收事件,NodeTree组成Scene,
- TileMap瓦片地图,生成基本的游戏背景地图,计算位置和碰撞。
GDScript
- 函数:func name():
- 分支:if expresion:
- 循环:for var in varlist:
- 属性:var setget func(属性值变化捕获)
- 静态函数:self.*
- 函数引用:funcref(instance,funcname)、instance.call(fucname,args)、ref.exec调用
- 信号:signal(a,b) signal
- 返回:yield立刻函数返回 resume回退到yield记录点执行 yield(object,signal)
- Node方法:gettree(获取场景树) , getnode(获取节点)
- Reference:资源文件init_ref、 unreference、 reference(可以查看help中的api)
- Signal(Qt信号)、Connect(连接邮槽)
- Node属性:
- Process:idle Processing(脚本空闲处理帧数据)、fixed Processing(脚本固定处理帧数据,需要引擎同步)
- Script:GDScript脚本
- load:动态加载 preload:静态加载
- 可视化脚本,图形化编程,添加脚本时选择VisualScript
keyword
- $NodePath,get_node(“NodePath”)的快捷方式
- @“A/B”, NodePath
- export导出,编译器可编辑
- signal自定义信号,编辑器可见的事件信号
- get、set属性
- supper父类,3.x使用.访问父类
- tool,编辑器中运行代码,不在游戏中运行
gdscript 4.x和3.x语法区别
https://blog.csdn.net/ttm2d/article/details/107818889
Engine
参考:
http://www.amsoft.cn/sort/27
http://www.godotengine.org/wp/features/
https://github.com/okamstudio/godot/wiki/gdscript脚本语法