微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

3.GDScript1概览

 

GDScript 是上面提到的用于Godot的主要语言。和其他语言相比,它与Godot高度整合,有许多优点:

  • 简单,优雅,设计上为Lua、Python、Squirrel等语言用户所熟悉。
  • 加载和编译速度飞快。
  • 编辑器集成非常令人愉快,有节点、信号、其它场景相关项目的代码完成。
  • 有内建矢量类型(比如Vector、Transform等),大量使用线性代数时非常有效。
  • 支持多线程,像静态类型语言一样有效 - 这是我们避免使用诸如Lua、Squirrel等虚拟机的原因之一。
  • 不使用垃圾回收器,所以它确定性地自动处理之这部分(大多数对象都是引用计数)。
  • 它的动态特性使其需要提高性能时,可以很容易地优化C++代码段(通过GDNative),而这些不需要重新编译引擎。

GDScript的例子

有些人可以通过查看语法来更好地学习,下面是GDScript的一个简单示例。

# A file is a class!

# Inheritance extends BaseClass # (optional) class deFinition with a custom icon class_name MyClass,"res://path/to/optional/icon.svg" # Member Variables var a = 5 var s = "Hello" var arr = [1,2,3] var dict = {"key": "value",2:3} var typed_var: int var inferred_type := "String" # Constants常类型 const ANSWER = 42 const THE_NAME = "Charly" # Enum枚举 enum {UNIT_NEUTRAL,UNIT_ENEMY,UNIT_ALLY} enum Named {THING_1,THING_2,ANOTHER_THING = -1} # Built-in Vector Types容器类型 var v2 = Vector2(1,2) var v3 = Vector3(1,3) # Function func some_function(param1,param2): var local_var = 5 if param1 < local_var: print(param1) elif param2 > 5: print(param2) else: print("Fail!") for i in range(20): print(i) while param2 != 0: param2 -= 1 var local_var2 = param1 + 3 return local_var2 # Functions override functions with the same name on the base/parent class. # If you still want to call them,use ‘.‘ (like ‘super‘ in other languages).覆盖方法变动 func something(p1,p2): .something(p1,p2) # Inner Class class Something: var a = 10 # Constructor构造函数 func _init(): print("Constructed!") var lv = Something.new() print(lv.a)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐