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的用途,先绕过去也没事,但明知山有虎偏向虎山行才是我们要做的. 本文面向的阅读对象:正在学习 ...
随机推荐
- 转:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法、shiro认证与shiro授权
原文地址:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法.shiro认证与shiro授权 以下是部分内容,具体见原文. shiro介绍 什么是shiro shiro是Apache ...
- 创建日志表记录DML操作和DDL操作
创建一个日志表,记录dept表的DML操作 create table dept_log(logid number,type varchar2(50),logdate date,deptno numbe ...
- Android SDK 环境变量
系统变量 PATH中加入 C:\Program Files (x86)\Android\android-sdk\platform-tools 和 C:\Program Files (x86)\Andr ...
- 洛谷P4570 [BJWC2011]元素 线性基
正解:线性基+贪心 解题报告: 传送门! 这题其实没什么好写题解的,,,显然贪心一下尽量选魔力大的,不用证明趴挺显然的来着 所以就直接按魔力排个序,插入线性基里面,能插就加个贡献,over 放下代码趴 ...
- root用户远程登录Ubuntu
安装了一台Ubuntu的服务器,由于大家都需要使用,因此创建了多个用户,多台windows机器用过Putty远程登录,但是默认情况下创建的用户都是普通用户,也就是说很多root用户能够使用的权限以及命 ...
- Mybatis返回值类型是hashmap,输入键值对为空时,key 丢失的问题
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...
- 第二节:Linux下检出项目和提交项目
1.在linux下获取项目: 2.在linux中提交项目: 这时候我们在光标处添加注释,然后保存退出. 再查看下状态: 接下来问题来了: 解决办法: vim .git/config 修改:[remot ...
- OCP-第二节课.md
第一. MQ(压队列) PGA share pool 三层结构 应用服务器--->中间件--->数据库 第二. TCP/IP 第三. 应用层:应用层.表示层.会话层 数据流层: ...
- 20165236 实验二 《Java面向对象程序设计》实验报告
20165236 实验二<Java面向对象程序设计>实验报告 姓名:郭金涛 学号:20165236 课程:Java程序设计 指导老师:娄嘉鹏 实验时间:2 ...
- 八种排序算法--java实现(转)
(转:http://blog.csdn.net/without0815/article/details/7697916) 8种排序之间的关系: 1, 直接插入排序 (1)基本思想:在要排序的一组数中, ...