3.GDScript(1)概览
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", :}
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, 2, 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():
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)
3.GDScript(1)概览的更多相关文章
- Activity之概览屏幕(Overview Screen)
概览屏幕 概览屏幕(也称为最新动态屏幕.最近任务列表或最近使用的应用)是一个系统级别 UI,其中列出了最近访问过的 Activity 和任务. 用户可以浏览该列表并选择要恢复的任务,也可以通过滑动清除 ...
- Atitit 软件工程概览attilax总结
Atitit 软件工程概览attilax总结 1.1. .2 软件工程的发展 进一步地,结合人类发展史和计算机世界演化史来考察软件工程的发展史. 表2 软件工程过程模型 表2将软件工程的主要过程模型做 ...
- iOS开发系列—Objective-C之基础概览
概览 前面我们已经用了几章内容进行C语言介绍,当然要通过几篇文章完整的介绍C语言的知识是不太现实的,例如C语言的文件操作.内存申请等我们都没有重点介绍,当然核心知识点基本都已经提到了,后面有时间我们会 ...
- iOS开发系列--IOS程序开发概览
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...
- Azure SQL Database (19) Stretch Database 概览
<Windows Azure Platform 系列文章目录> Azure SQL Database (19) Stretch Database 概览 Azure SQL Da ...
- Web前端开发大系概览 (前端开发技术栈)
前言 互联网建立50多年了,网站开发技术日新月异,但web前端始终离不开浏览器,最终还是HTML+JavaScript+CSS这3个核心,围绕这3个核心而开发出来大量技术框架/解决方案. 我从2000 ...
- Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx
Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx 1. 摘要算法的大概流程2 2. 旧约圣经 (39卷)2 2.1. 与古兰经的对 ...
- 【WPF系列】基础学习-WPF架构概览
引言 WPF从.net framewok3.0加入以来,经历了很多跟新.每次更新都给用户带来了新的功能或者优化性能.下面我们首先看下WPF再.netFramework中的位置,接着介绍下WPF的架构框 ...
- jQuery1.11源码分析(1)-----Sizzle源码概览[原创]
最近在啃jQuery1.11源码,上来就遇到Sizzle这个jQuery的大核心,虽然已经清楚了Sizzle的用途,先绕过去也没事,但明知山有虎偏向虎山行才是我们要做的. 本文面向的阅读对象:正在学习 ...
随机推荐
- LeetCode 728 Self Dividing Numbers 解题报告
题目要求 A self-dividing number is a number that is divisible by every digit it contains. For example, 1 ...
- 【JMeter】【性能测试】正则表达式关联
1:登录接口 这里有一个实际的登录接口,在响应中返回了一串token,如下图 那么我们在接下来的接口-经验库列表中,就必须带入这一串token,否则响应报错,如下图所示 测试开发交流群 31776 ...
- Spring事务管理详解_基本原理_事务管理方式
1. 事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,使用JDBC的事务管理机制,就是利用java.sql.Connection对象完成对事务的提交,那在没有Spring帮我们管理事 ...
- MongoDB update修改器: 针对Arrays的$修改器 $push $pull $pop
针对Arrays的$修改器 $push : { $push: { key: value } } 它是用来对Array (list)数据类型进行 增加 新元素的,相当于我们Python中 list.ap ...
- 如何将finecms链接URL中的list和show去掉
finecms上手还算比较快吧,对seo关注的朋友会想着将它的url改造了,里面多了-list-和-show-,可以直接去掉,下面就随着ytkah一起来进行设置吧. 首先到后台的url规则,将列表和列 ...
- ros 运行rviz时出现 QXcbConnection: XCB error: 148 错误 解决方法
出现上述问题的原因: 1.由于使用了nvc远程控制下位机: 2.rviz是一个基于opengl开发的图形插件,需要使用理论的屏幕参数(thetis' screen),由于使用了teamviewer会导 ...
- 012-Future、FutureTask、CompletionService 、CompletableFuture
一.概述 创建线程的两种方式,一种是直接继承Thread,另外一种就是实现Runnable接口.这两种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果.如果需要获取执行结果,就必须通过共享变量或 ...
- 字符串类型 str-->转义符-->字符串格式化-->占位符-->综合案例
# ###字符串类型 str """ 用引号起来的就是字符串 三种引号:单引号 双引号 三引号 """ """ ...
- [sh]shift参数左移用法
shift概述 https://blog.csdn.net/wangjianno2/article/details/48879641 1.shell脚本中的位置参数 shell脚本中的位置参数有两种: ...
- (转)EOSIO开发(四)- nodeos、keosd与cleos
前一篇文章介绍了EOSIO中钱包.账户与账户权限的概念,这一篇文章继续学习EOSIO系统的主要组件,包括nodeos.keosd以及cleos. 本文执行的命令都是基于Docker环境,请先下载Doc ...