游戏鼠标视差(Mouse Parallax)功能

它有什么用?

核心目的:

让静态画面产生"跟随感"和"空间感",提升沉浸感。


1. 增强画面层次感

普通:

复制代码
玩家
 |
Camera
 |
固定画面

感觉像在看截图。

加入鼠标偏移:

复制代码
鼠标 →

        Camera轻微移动

玩家视角产生变化

玩家感觉:

我正在观察这个世界。


2. 主菜单常用

很多游戏主菜单:

比如:

  • 角色展示
  • 武器展示
  • 游戏Logo背景

鼠标移动:

复制代码
鼠标 →
角色背景轻微移动

让界面感觉更高级。

例如:

复制代码
背景层       移动 5px
角色层       移动 15px
前景粒子     移动 30px

这就是 Parallax(视差)。


3. 增强战斗反馈

肉鸽游戏非常常见。

例如:

玩家攻击:

普通:

复制代码
角色挥刀

加入 Camera Offset:

复制代码
鼠标方向 →
镜头稍微偏移
攻击方向更明显

玩家会感觉:

  • 攻击更有力量
  • 视野更开阔
  • 操作更跟手

4. 第三人称游戏常用

类似:

  • 《荒野大镖客》
  • 《最后生还者》
  • 《原神》

都有类似概念。

比如:

鼠标向右:

复制代码
角色

     镜头偏右

看到更多右侧空间

方便玩家观察。


5. 恐怖游戏增强压迫感

比如:

鼠标移动:

复制代码
你看向左边

镜头稍微跟过去

产生:

  • 人在观察环境
  • 不是固定摄像机
  • 更真实

Godot鼠标视差Camera脚本

python 复制代码
extends Camera2D


@export_category("Mouse Camera Follow")

# 鼠标影响摄像机的最大偏移距离
@export var mouse_strength: float = 20.0

# 镜头平滑速度
@export var smooth_speed: float = 5.0


var target_offset: Vector2 = Vector2.ZERO
var mouse_inside: bool = true


func _ready():
	
	# 监听鼠标进入/离开窗口
	get_viewport().mouse_entered.connect(_on_mouse_entered)
	get_viewport().mouse_exited.connect(_on_mouse_exited)


func _process(delta):

	if mouse_inside:
		# 获取鼠标位置
		var mouse_position = get_viewport().get_mouse_position()

		# 获取屏幕中心
		var screen_center = get_viewport_rect().size / 2


		# 鼠标相对于中心的位置 (-1 ~ 1)
		var mouse_direction = (
			mouse_position - screen_center
		) / screen_center


		# 计算目标偏移
		target_offset = mouse_direction * mouse_strength

	else:
		# 鼠标离开窗口,回到默认位置
		target_offset = Vector2.ZERO

	# 平滑移动摄像机
	offset = offset.lerp(target_offset, smooth_speed * delta)


func _on_mouse_entered():
	mouse_inside = true



func _on_mouse_exited():
	mouse_inside = false
相关推荐
神仙别闹4 小时前
基于C++实现的贪吃蛇游戏平台
java·c++·游戏
河南花仙子科技1 天前
企业私域死气沉沉?小游戏盘活用户活跃度
游戏
Lonely丶墨轩1 天前
用 Vue + Spring Boot + Python 做一个 AI 双人海龟汤游戏:从出题、联机到自动审稿等核心技术设计与实现
spring boot·后端·游戏
avi91111 天前
Unity 介绍一个开源免费图片工具 Tropy 科研.org推荐 - 代表作
游戏·开源·aigc·tropy·图片管理
小智GEO观察1 天前
显卡哪些是一线品牌:高端AI算力与4K/8K游戏市场品牌格局观察
人工智能·游戏
梦想平凡1 天前
棋牌游戏技术实战(一):用 Node.js 实现房间消息队列、请求幂等与断线恢复
游戏·node.js
郝学胜_神的一滴2 天前
游戏引擎原理与实践 04:拆解引擎基础系统与内存管理
c++·游戏
Hello_Pyhx2 天前
DLSS5-Swapper 配置教程:核对游戏API、选择路线与排查F8无响应
游戏
Martina_03212 天前
山谷地形下雨后湿痕总往坡上爬?用6步检查高度场、流向遮罩与分区加载
人工智能·游戏·数学建模·3d·自然语言处理·aigc·关卡设计
特立独行的猫a3 天前
用仓颉语言给娃写了个打字练习游戏:cj-tauri 项目实战
游戏·ui·框架·tauri·仓颉·cangjie·cj-tauri