前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Godot进行2D游戏开发入门-GDScript基本语法

Godot进行2D游戏开发入门-GDScript基本语法

作者头像
码客说
发布2023-08-08 12:57:56
3830
发布2023-08-08 12:57:56
举报
文章被收录于专栏:码客码客

类型推断

如果编写冒号,Godot将尝试推断类型,但省略了类型:

代码语言:javascript
复制
var life_points := 4
var damage := 10.5
var motion := Vector2()

数组

代码语言:javascript
复制
var array = [10, "hello", 40, 60] # Simple, and can mix types
array.resize(3) # Can be resized
use_array(array) # Passed as reference

在动态类型语言中,数组也可以与其他数据类型(如列表)同时使用:

代码语言:javascript
复制
var array = []
array.append(4)
array.append(5)
array.pop_front()

或无序集:

代码语言:javascript
复制
var a = 20
if a in [10, 20, 30]:
    print("We have a winner!")

字典

字典示例:

代码语言:javascript
复制
var d = {"name": "John", "age": 22} # Simple syntax
print("Name: ", d["name"], " Age: ", d["age"])

字典也是动态的,可以在任何地方添加或删除键,成本很低:

代码语言:javascript
复制
d["mother"] = "Rebecca" # Addition
d["age"] = 11 # Modification
d.erase("name") # Removal

遍历

支持数组,字典和字符串的遍历。

代码语言:javascript
复制
for s in strings:
    print(s)

容器数据类型(数组和字典)是可重复的。字典允许迭代键:

代码语言:javascript
复制
for key in dict:
    print(key, " -> ", dict[key])

也可以使用索引进行迭代:

代码语言:javascript
复制
for i in range(strings.size()):
    print(strings[i])

range()函数可以接受3个参数:

代码语言:javascript
复制
range(n) # Will go from 0 to n-1
range(b, n) # Will go from b to n-1
range(b, n, s) # Will go from b to n-1, in steps of s

正向遍历

代码语言:javascript
复制
for i in range(10):
    pass

for i in range(5, 10):
    pass

for i in range(5, 10, 2):
    pass

反向遍历

代码语言:javascript
复制
for i in range(10, 0, -1):
    pass

字符串

单个占位符

代码语言:javascript
复制
# Define a format string with placeholder '%s'
var format_string = "We're waiting for %s."

# Using the '%' operator, the placeholder is replaced with the desired value
var actual_string = format_string % "Godot"

print(actual_string)
# Output: "We're waiting for Godot."

方式2

代码语言:javascript
复制
# Define a format string
var format_string = "We're waiting for {str}"

# Using the 'format' method, replace the 'str' placeholder
var actual_string = format_string.format({"str": "Godot"})

print(actual_string)
# Output: "We're waiting for Godot"

多个占位符

代码语言:javascript
复制
var format_string = "%s was reluctant to learn %s, but now he enjoys it."
var actual_string = format_string % ["Estragon", "GDScript"]

print(actual_string)
# Output: "Estragon was reluctant to learn GDScript, but now he enjoys it."

混合

代码语言:javascript
复制
"Hi, {0} v{version}".format({0:"Godette", "version":"%0.2f" % 3.114})

类与对象

实例化

代码语言:javascript
复制
AudioStreamPlayer.new()

类型转换

代码语言:javascript
复制
Sprite mySprite = GetNode("MySprite") as Sprite;
// Only call SetFrame() if mySprite is not null
mySprite?.SetFrame(0);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 类型推断
  • 数组
  • 字典
  • 遍历
  • 字符串
  • 类与对象
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档