一个开箱即用的游戏引擎所做的小 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了一个新的知识点

相关推荐
企业对冲系统官2 小时前
基差风险管理系统集成说明与接口规范
大数据·运维·python·算法·区块链·github
企业对冲系统官3 小时前
大宗商品风险对冲系统统计分析功能的技术实现
运维·python·算法·区块链·github·pygame
做cv的小昊6 小时前
3DGS加速&压缩指标评测方法、高斯数量变化曲线绘制——Training Time、FPS、Gaussian Number、Peak Memory
笔记·计算机视觉·3d·开源·github·图形渲染·3dgs
CoderJia程序员甲8 小时前
GitHub 热榜项目 - 日榜(20260116)
ai·开源·大模型·github·ai教程
二哈喇子!11 小时前
Git下载安装教程
git·github
leader丶11 小时前
实现GitHub和Google第三方登录
github
Codeking__1 天前
Redis——基本通用命令
redis·git·github
独自破碎E1 天前
下载 GitHub 仓库「单个文件夹」的方法
github
大厂技术总监下海1 天前
“Today I Learned”(TIL):一种比写博客更可持续的知识沉淀习惯
大数据·开源·github
掘金安东尼1 天前
⏰前端周刊第 448 期(2026年1月4日-1月10日)
前端·面试·github