gdscript体会

embedded/2024/11/28 8:57:03/

前言:gdscript是Godot引擎提供的编程语言,代码结构上与Python类似

gdscript的match语句失效?

gdscript提供match实现其它编程语言的switch case效果,常见的结构如下

	var value = 0match value:-1:print("left")	0:print("none")	1:print("right")	

value与0匹配,输出none
但是在如下代码中获取控制输入的direction时,尽管debugger时变量direction的值在-101中,但是却没走匹配的逻辑,控制台没有输出"left""none""right"等信息

func _physics_process(delta):# Add the gravity.if not is_on_floor():velocity.y += gravity * delta# Handle jump.if Input.is_action_just_pressed("jump") and is_on_floor():velocity.y = JUMP_VELOCITY# Get the input direction and handle the movement/deceleration.# As good practice, you should replace UI actions with custom gameplay actions.var direction = Input.get_axis("move_left", "move_right")match direction:-1:print("left")	0:print("none")	1:print("right")	if direction:velocity.x = direction * SPEEDelse:velocity.x = move_toward(velocity.x, 0, SPEED)move_and_slide()

默认情况下direction为0,声明一个为0的变量value与direction进行比较,在控制台输出为true
在这里插入图片描述
查看debugger窗口,directionvalue确实为0,但是match语句已经走到了29行,条件0没有匹配
在这里插入图片描述

难道是类型有什么问题吗?关注direction的来源Input.get_axis,方法声明中get_axis返回的是float类型
在这里插入图片描述

那把-1、0、1调整成-1.0、0.0、1.0能否正常匹配呢?
结果:成功匹配
在这里插入图片描述


http://www.ppmy.cn/embedded/141151.html

相关文章

五,[GXYCTF2019]Ping Ping Ping1

进入靶场,有提示 我们在url试着输入本地IP,返回了ping命令 既然要在url处传参,那就用postman,再输入ip127.0.0.1 & ls,试着列出目录内容 ok,好像是个脏话,它过滤了空格 试着穿越又看到了脏话&#xff0…

Linux 共享环境搭建

NFS网络文件系统 说明:这个主要是应用于Linux系统与Linux系统之间的通信。 服务端 步骤: 在被共享的系统中安装nfs服务 sudo apt-get install nfs-kernel-server注意:如果系统提示无法定位软件包,就需要更新软件源 sudo apt-g…

使用Cmake导入OpenCV库的大坑记录

CMakeLists.txt cmake_minimum_required(VERSION 3.20)set(OpenCV_DIR D:/Package/opencv4/opencv/mingw-build/install) #这里根据自己OpenCV位置设定find_package(OpenCV REQUIRED)project(PROJ1 CXX)add_executable(PROJ1 main.cpp)target_include_directories(PROJ1 PR…

常用指标采集 exporter

1. MySQL https://github.com/prometheus/mysqld_exporter可用性 表示MySQL实例是否已停机 mysql_up 表示数据库正常运行的时长,通常使用该指标配置告警,监控运行少于半小时的MySQL实例mysql_global_status_uptime 数据库连接 连接错误是数据库中的…

WPF——ICON按钮制作

前言 首先ICON按钮,即带图标按钮,即图标按钮。 图标按钮在开发时,主要是有两种方式来进行。一是在Button的Content内添加Image,然后设置Image的属性Source来实现,这种方式主要是简单易操作,对于初学者来说…

计算机网络基础回顾

网络有几层? OSI 模型 OSI(开放系统互联)模型由七层构成,分别是: 物理层 (Physical Layer):负责传输原始比特流,处理物理连接和电气信号。 数据链路层 (Data Link Layer):负责节点…

一文理解多模态大语言模型——上

作者:Sebastian Raschka 博士, 翻译:张晶,Linux Fundation APAC Open Source Evangelist 编者按:本文并不是逐字逐句翻译,而是以更有利于中文读者理解的目标,做了删减、重构和意译&#xff0c…

Linux系统之fuser命令的基本使用

Linux系统之fuser命令的基本使用 一、fuser命令介绍二、fuser命令使用帮助2.1 help帮助信息2.1 基本语法①通用选项②文件/设备相关选项③网络相关选项④进程操作选项⑤其他选项 三、fuser命令的基本使用3.1 查找挂载点的进程3.2 查看指定设备进程信息3.3 查找监听特定端口的进…