Godot Engine-GDScript 3.1 新机制

GDScript是Godot团队参考Python等脚本语言设计的一种Godot专用脚本语言,用官方的话来讲这种语言是专为这种节点式的系统而生的。咋一看,它的语法格式很像Python,起初以为是使用了Python的内核,其实并不是,GDScript只是形式上借鉴了Python,其语法细节以及内存管理机制等都是自主设计的,但是毕竟是个小型研发团队,把一种语言设计得完美无缺是很困难的。所以官方采取了一种很“投机取巧”的策略,即舍弃一些大大增加GDScript语言内核或者虚拟机复杂度的机制,用Godot引擎的机制来弥补(语言不够引擎来凑)。这样的策略使得GDScript和Godot互相依赖,但是实际效果还是不错的,一方面保证了功能完整 同时又能够保证语言内核稳定便于维护。

Godot 3.1版本增加了一些新的机制,主要是完善了GDScript 语法,以下是对当前GDScript 面向对象机制的笔记

1.之前每个挂在节点上的脚本都是一个匿名类,3.1以后可以使用"class_name"关键字给脚本类命名了:

extends RigidBody2D

#使用class_name关键字定义类名
class_name Bird

const velocity : Vector2 = Vector2(0,-200)

func _physics_process(delta:float) -> void :
	if Input.is_action_just_pressed("LMB_CILCK") :
		self.linear_velocity = velocity
		pass
	return

这样以后我们再调用自定义类来继承或者实例化,可以直接像C#一样直接使用类名

#继承基类Bird

extends Bird

func _ready():
	return 
#实例化
extends Node2D

func _ready():
	var bird:Bird = Bird.new()
	return 

并且这种拥有了名字且直接或间接继承自Node的类可以在创建新Node的列表里找到

猜你喜欢

转载自blog.csdn.net/hello_tute/article/details/85257190