下载客户端

Godot 中的 Switch-Case(Match)

2026-02-14 19:00:08
发布在Godot Engine
转载

AI智能总结导读

本文介绍了Godot引擎中替代Switch-Case的match语句,先讲解了Switch-Case的定义、相比if-else的优势,还以《病娇模拟器》为例说明if-else代码效率低的问题,最后详细演示了Godot中match语句的使用方法与代码示例。

我将为你介绍如何在游戏脚本中使用Switch-Case语句 1. 什么是Switch-Case "switch"结构可以替代多个if语句。它是一种更直观的方式,能将表达式直接与多个选项进行比较。 以下是JavaScript中"switch"结构的示例

无法识别或无法翻译,已删除。为什么要使用switch-case呢?通常人们使用它是因为相比if-else,它更方便且处理速度更快。我建议使用switch-case而不是if-else。如果你知道《病娇模拟器》这款游戏,简单来说,它的代码因为总是使用if-else组合,所以效率非常低。病娇开发者(YandereDev)只使用过一次switch-case。为什么他的代码效率低呢?游戏引擎会一直进行检查。if-else条件,以及通过调用实现的Switch-Case接下来有些评论将与代码无关。最逼真的模型,随时随地都在使用(你会看到1-3次)——牙刷。对手的人工智能是用同样糟糕的代码(If-Else)编写的。游戏是用Unity资源商店的素材拼凑而成的(这还算可以原谅)。糟糕代码(C#)和正常代码(C#)的示例。糟糕代码示例(见下方评论):int a = 2, b = 10; if (a == b) { // 如果a等于b,那么将执行代码 // 这里是要执行的代码 // 如果所有一行代码的话,花括号{}//可以不写} else if (a <= b) { //如果a小于等于b //如果之前的条件不成立, //而这里的条件成立, //就执行这段代码 } else { //如果其他条件都不成立,就执行这段代码 } 大概重复6-10次,就会变成垃圾代码 ------------------------------------------------------------------ 正常代码示例 int x = 23; switch (x) { //检查变量x case 1: //如果如果变量等于1,那么此处的代码将执行//可以有多个行,而不仅仅是一行printf("变量等于1\n");break;//指明该条件判断的代码结束case56://如果变量等于56,那么此处的代码将执行//可以有多个行,而不仅仅是一行printf("变量等于56\n");break;//指明该条件判断的代码结束//可以类似地进行多个这样的判断//也可以添加判断3. 如何在《戈多》中使用Switch-Case 不出所料,GD脚本中也有Switch-Case,但它经过了简化且名称不同,准确来说是match。 像往常一样创建任意场景和项目,因为我们要在控制台中输出。 现在是编写代码的时间!创建场景和脚本 将脚本附加到场景 准备工作完成! 代码如下:

代码说明 extends Node - 继承节点 var ypta = 55 - 声明变量ypta并赋值55(可以修改,接下来用通俗的语言解释一些内容) func _on_ready(): - 基础函数,当程序运行时执行该函数内的其余代码 match ypta: - 指定要检查的变量(在这种情况下,Switch-Case将检查变量ypta) false: - (如果变量的值等于false,则执行此代码) print("Чао какао ♥♥♥♥!")") true: -(如果变量值等于true,则执行此代码)print(“好吧,你不是小混混”)“net”:-(如果变量值等于net,则执行此代码)print(“网络什么的,这信息我不感兴趣”)228:-(如果变量值等于228,则执行此代码)print(“听起来像篇文章”)_:-(如果变量值不属于上述任何一种,则执行此代码)print(“回答false或true,否则封禁”)用通俗的话解释 Switch-Case 会获取检查变量ypta并与条件进行比较:如果变量等于false,控制台将显示消息【Чао какао ♥♥♥♥!】如果变量等于true,控制台会显示消息“好吧,你不是小混混”。如果变量等于net,控制台会显示消息“网络什么的,我不需要这个信息”。如果变量等于228,控制台会显示消息“听起来像篇文章”。如果变量与任何条件都不匹配,控制台会显示消息“回答false或true,否则封禁”。也就是说,_:-这就相当于普通switch-case中的default。如果你了解Switch-Case,这里有几个建议:用match替换switch。删除case。 删除所有break。 将default替换为下划线。 4. 结尾 该说的都说了,就这样结束吧。关于还需要写什么指南,可以提出来。

评论

共0条评论
face
inputImg
相关阅读
最新更新

游戏 【中配】Godot 游戏制作编程入门:边做边学 | 7 款经典风格游戏从 0 到 1 实战课

2、课程素材:https://pan.quark.cn/s/0b742a606b5f 【课程简介】 本课程是Christian Koch打造的Godot引擎编程…

2026-01-10 06:270赞 · 0评论

独立游戏 【godot】一个视频教会你打击停顿

又在看简介哦,支持一下我的游戏《星下零碎》吧!

2026-01-09 08:120赞 · 0评论

使用C++在Godot中构建完整游戏!

在GODOT中使用C++开发游戏?本指南将介绍相关可能性以及各种方法的优缺点,还会讲解使用Godot Engine和C++进行开发所需的一切知识。该指南包含7个…

2026-02-14 22:000赞 · 0评论

独立游戏 首款Godot制作大型3D游戏《通往东方之路》(Road to Vostok)steam今日即将发售,展示Godot3D实力的时刻!!!!

首款Godot制作大型3D游戏《通往东方之路》(Road to Vostok)steam今日即将发售,展示Godot3D实力的时刻!!!!

2025-09-09 21:010赞 · 0评论

阴阳师 【阴阳师周年庆】萌新老登必看,999小心无良代肝!

2026-05-01 05:020赞 · 0评论

泰伯利亚黎明触发器机制详解 - 它们的真实运作方式

Anyone who has messed with scripting in Tiberian Dawn, and has done some slightl…

2026-02-16 01:000赞 · 0评论

创游世界 《创游世界》远程武器自动瞄准脚本

超级简单

2026-02-03 07:210赞 · 0评论

天天炫斗 天天炫斗科技合集

-

2025-12-27 12:270赞 · 0评论

生活记录 【主观锐评】二重螺旋脚本想开就开 管好自己 拒绝玩家内斗

骂我我就骂你 烂完了社区

2025-10-21 19:240赞 · 0评论

抽奖 【七日世界】1w个银门箱子有多少个17?-银门你还说是脚本吗

2025-09-30 08:100赞 · 0评论
暂无更多

最新更新

  • 释放Godot的全部潜能 — 你是否一直想知道Godot引擎能实现什么?更小的构建体积、更简洁的工作流程、更出色的调试选项。在Godot游戏引擎中,你确实可以进行大量自定义设置!每个使用该引…
  • 贝壳纹理制作完全指南4.4 — 这是一份关于在Godot 4.4.1中制作外壳纹理的指南。 截图 链接已屏蔽 链接2已屏蔽
  • Android 导出设置 — 1. 必要工具 首先我们需要Android Studio,因为通过它我们可以安装Godot创建APK所需的SDK。 2. 安装Android Studio和SD…
  • 使用C++在Godot中构建完整游戏! — 在GODOT中使用C++开发游戏?本指南将介绍相关可能性以及各种方法的优缺点,还会讲解使用Godot Engine和C++进行开发所需的一切知识。该指南包含7个…
  • 【新手教程】在Godot引擎中制作真实时钟 — 我们将从头到尾制作一个显示本地时间的时钟。如果你希望更熟悉Godot Engine和GDScript,这是一个不错的起点。
  • 如何在场景之间切换? — 什么是场景 场景在Godot中是游戏的独立元素:关卡、菜单、设置窗口等。 每个场景由节点和资源组成。要让玩家从一种游戏状态切换到另一种状态,需要在场景之间进行切…
  • 为玩家提供最简单的亮度调节方式 — 最简单的亮度调整方法 :3 主要指南 1. 在所需位置创建一个Hslider节点。将通过它进行调节。
  • Godot 中的 Switch-Case(Match) — 我将为你介绍如何在游戏脚本中使用Switch-Case语句 1. 什么是Switch-Case "switch"结构可以替代多个if语句。它是一种更直观的方式,…
  • 如何导出为单个Windows可执行文件 — 如何导出为单个Windows可执行文件(.exe) Godot 4.0及以上版本 1. 打开项目 2. 在应用程序功能区中选择【项目】 3. 选择【导出...】…
  • Godot引擎2.2+中使用KinematicBody2D的玩家控制器 — 展示使用运动学体2D(KinematicBody2D)的简单玩家控制器。