首页 Baldur’s Quest – Demo
👻SentoMK's Thoughts👻

Baldur’s Quest – Demo

这是一款稍有难度但轻松愉快的 2D 像素风平台跳跃游戏。使用 Godot 引擎与 GDScript 制作。

游戏源码发布在:https://github.com/SentoMK/baldur_quest

在线试玩:https://sentomk.itch.io/baldurs

也可通过 https://github.com/SentoMK/baldur_quest/releases/tag/Game 下载游玩

游戏资源来自:https://chroma-dave.itch.io/pixelart-adventure-pack

1. 优化的操作体验

为了确保流畅且富有响应性的游戏体验,我在 Player.gd 中实现了多项关键的优化:

容错性提升: 我运用了 Coyote Time (土狼时间) 和 Jump Buffer (跳跃缓冲) 这两种在平台跳跃游戏中被广泛认可的技术。 Coyote Time 允许玩家在离开地面后短暂的时间内仍然可以跳跃,而 Jump Buffer 则允许玩家在落地前的一小段时间内提前按下跳跃键,角色仍然可以成功跳跃。 这两个机制有效地提升了玩家的容错率,使得操作更加宽容,降低了挫败感。

func handle_coyote_time(delta):
	if is_on_floor():
		coyote_timer = coyote_time
		can_double_jump = true # 落地时重置二段跳状态
	else:
		coyote_timer = max(coyote_timer - delta, 0.0)

func handle_jump_buffer(delta):
	if not active:
		jump_buffer_time = 0.0
		return

	if Input.is_action_just_pressed("jump"):
			jump_buffer_timer = jump_buffer_time
	else:
		jump_buffer_timer = max(jump_buffer_timer - delta, 0.0)

精细的空中控制: 不同于简单的重力下落,我的角色控制器实现了复杂的空中控制机制。 玩家可以在空中略微调整角色的移动方向,这允许更精确的落点控制。 此外,代码还考虑了转向时的动量保留,以及空中加速和摩擦等因素,使得空中操作既具有挑战性,又富有深度。 这一机制结合了流畅性和策略性,为玩家提供了更丰富的移动可能性。

# 空中移动处理
func handle_air_movement(direction):
	var target_speed = direction * max_air_speed
	# 根据起跳状态选择控制系数
	var air_control = run_air_control if is_running else walk_air_control
	var accel = air_accel * air_control

	# 计算加速方向与当前速度的关系
	if sign(direction) == sign(velocity.x):
		# 同向加速
		velocity.x = move_toward(
			velocity.x,
			target_speed,
			accel * get_physics_process_delta_time()
		)
	else:
		# 反向时应用摩擦保留动量
		var retained_speed = velocity.x * retain_momentum
		velocity.x = move_toward(
			retained_speed,
			target_speed,
			air_friction * get_physics_process_delta_time()
		)

2. 逐步递增的难度曲线

为了给玩家提供既具有挑战性又充满成就感的游戏体验,我设计了游戏的难度曲线。 游戏共包含三个设计独特的关卡,难度随着关卡的推进而逐步递增。

关卡 1:引导与教学。 第一个关卡旨在引导玩家熟悉游戏的基本操作和核心机制。 关卡设计相对简单,重点在于让玩家掌握跳跃、移动、二段跳等基础技巧,并逐渐了解 Coyote Time 和 Jump Buffer 等机制的作用。

关卡 2:挑战与进阶。 第二个关卡引入了更复杂的关卡布局和更具挑战性的障碍。 玩家需要熟练运用之前学到的技巧,并开始尝试更高级的移动组合。关卡中还加入了一些新的机关,增加挑战性。

关卡 3:精通与考验。 第三个关卡是难度最高的关卡,旨在考验玩家对游戏机制的精通程度。玩家需要充分发挥自己的操作技巧才能顺利通关。

二、演示视频

本文由作者按照 CC BY 4.0 进行授权