#camera #bevy #gamedev #2d #screen #deadzone #stalker-x

rantz_camera2d

Bevy的2D相机插件,灵感来源于Love2D相机插件——STALKER-X

14个版本 (4个稳定版本)

1.1.2 2024年7月20日
1.1.1 2024年7月9日
0.5.0 2024年6月24日
0.4.0 2024年6月19日
0.3.7 2024年5月30日

#1740 in 游戏开发

Download history 435/week @ 2024-05-21 223/week @ 2024-05-28 369/week @ 2024-06-04 7/week @ 2024-06-11 307/week @ 2024-06-18 46/week @ 2024-06-25 251/week @ 2024-07-02 183/week @ 2024-07-09 128/week @ 2024-07-16 15/week @ 2024-07-23 1/week @ 2024-07-30

每月403次下载
rantz_suite 中使用

MIT/Apache

170KB
4.5K SLoC

Rantz Camera2D

使用 rantz_spatial2d 的 Bevy 游戏引擎的相机系统。深受 Love2D 插件 STALKER-X 启发。

特性

此插件的主要特性是 CameraBundle2DCameraStyle

CameraStyle

定义了三种相机样式

  • 精确
  • 死区
  • 屏幕到屏幕

精确

具有此样式的相机将精确地跟随其 CameraTargetCameraLerpCameraLead 无效。

死区

具有此样式的相机将保持静止,除非 CameraTarget 离开定义的 Deadzone

一旦目标离开死区,相机将根据 CameraLerp 的值(2.0 - 10.0 的值效果最佳)向目标lerp。

如果 CameraLead 的值大于1.0,则相机将尝试将目标定位在目标运动前的世界单位数等于提供的X和Y值。

Deadzone 以世界单位定义,不受投影缩放的影响。换句话说,如果您放大相机,Deadzone 的值不会改变。

屏幕到屏幕

具有此样式的相机将保持静止,除非 CameraTarget 离开可见屏幕区域。

一旦目标离开当前屏幕,相机将根据 CameraLerp 的值(2.0 - 10.0 的值效果最佳)lerp到下一个屏幕的中心。

CameraLead 无效。

屏幕大小基于当前可见屏幕大小,因此考虑了bevy的 OrthographicProjection 的各种选项,包括 ScaleScalingMode

用法

将crate添加到您的Cargo.toml,将CameraPlugin2D添加到您的应用程序中,并将CameraBundle2D添加到您的相机中。

注意:此插件严重依赖于rantz_spatial2d。如果您没有为您的游戏空间系统使用rantz_spatial2d,则此相机系统将无法正常工作。

依赖项

~39–75MB
~1.5M SLoC