一个开箱即用的游戏引擎所做的小 Demo

这里为大家介绍一个本人即兴突兀所作的小玩意,简单的人物移动 demo,控制角色在场景中上下左右移动,时间关系只能介绍完程序部分

使用的游戏引擎是 Godot,脚本语言为 GDScript

gdscript 复制代码
# 当前游戏脚本所继承的父类节点
extends CharacterBody2D

# 人物的移动速度 单位 像素
const _speed = 50.0

# 从外部引入的实例化对象
# Sprite2D 人物模型
@onready var sprite_2d: Sprite2D = $Sprite2D
# AnimationPlayer 人物动画
@onready var animation_player: AnimationPlayer = $AnimationPlayer

# 内置函数,该函数在程序的每一帧被调用
# 例如一秒六十帧,代表一秒内该函数被调用执行六十次
func _physics_process(delta: float) -> void:

	# Input.get_axis(),内置的输入控制函数
	# 其中两个参数,为键盘的映射,left 向左 按 D,right 向右 按 A,下同
	# 执行第一个参数,返回值为 -1,执行第二个参数,返回值为 1,二者都不执行,则为 0
	var direction_x = Input.get_axis("left","right")
	var direction_y = Input.get_axis("up","down")

	# velocity,内置,默认值为 (0, 0),表示向量速度
	# 例如,向左 D,-1 * 200,(-200, 0),人物一秒内延 X 抽反向移动 200 像素单位
	velocity.x = direction_x * _speed
	# 注意,在游戏 2D 中,Y 轴,箭头向下为正,向上为负
	velocity.y = direction_y * _speed

	# is_zero_approx,内置函数,判断参数是否为零
	# 当前判断,人物是否在做水平运动,即向左、向右
	if not is_zero_approx(direction_x):
		# flip_h,内置属性,代表人物的水平方向,
		# 该赋值语句,默认 false,若为 true,则人物模型水平反转
		sprite_2d.flip_h = direction_x < 0
		# 播放走路动画 walk
		animation_player.play("walk")
	# 判断人物是否在做垂直运动,即向上、向下
	elif not is_zero_approx(direction_y):
		animation_player.play("walk")
	# 该分支内,人物未做出移动,故而播放站立动画 idel
	else:
		animation_player.play("idel")

	# 碰撞检测,此处理解为用于更新 velocity 属性
	move_and_slide()

我很意外,掘金貌似不支持该程序脚本语言的高亮,看来 Godot 市场受众确实是十分的小啊,下附编辑器原图

动画位置

www.ixigua.com/73566135952...

Ps:因为掘金视频只支持,目前尚在审核中

上面是程序代码连带着演示,注释写的很清晰,因为很多人并不做游戏这一块,例如我,可以看到,通过很短的程序,可以控制游戏内人物的移动。这里省略了游戏场景的建立、人物模型和动画,因为这些不在本文的讨论中

时间过去了好长,不过也是有所收获的。本来动画想制作成 GIF,尝试发现 Godot可以直接导出视频,赞 get了一个新的知识点

相关推荐
傻啦嘿哟1 小时前
Python 文件批量处理:重命名/备份/同步运维实战指南
linux·数据库·github
淘矿人1 小时前
Claude辅助算法设计与优化
人工智能·python·算法·microsoft·github·bug·pygame
逛逛GitHub2 小时前
给 10 万 Star 的 Hermes 装个记忆外挂,AI 终于能越用越聪明了。
github
王莎莎-MinerU3 小时前
MinerU 生态全接入:LangChain、Dify、RAGFlow、LlamaIndex 六大框架完整集成指南(2026)
计算机视觉·chatgpt·langchain·pdf·github·aigc
神一样的老师5 小时前
【兆易创新GD32VW553开发板试用】 BSP 从 GitHub 下载与编译指南
单片机·github·rt-thread
DevilSeagull6 小时前
MySQL(1) 安装与配置
java·数据库·git·mysql·http·开源·github
kefon7 小时前
从零搭一个 AI Agent:我选了最省钱的方案
开源·github·agent
FreeBuf_8 小时前
GitHub评论可触发Claude Code、Gemini CLI和GitHub Copilot的提示注入漏洞
github·copilot
fzil0018 小时前
GitHub 项目自动 Star + Issue 监控
人工智能·github·issue
Daydream.V8 小时前
github基础入门及git安装配置
git·github·git学习·github学习