1. 程式人生 > >Godot Engine-GDScript 3.1 新機制

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的列表裡找到