godot4制作2D游戏08———相机限制
创建单例模式文件
- 新建一个00_Global文件夹,保证一直都在最上
创建一个GlobalLevelManager脚本文件
1
2
3
4
5
6
7
8
9extends Node
var current_tilemap_bounds: Array[Vector2]
signal TileMapBoundsChanged(bounds: Array[Vector2])
func ChangeTileMapBounds(bounds: Array[Vector2]) -> void:
current_tilemap_bounds = bounds
TileMapBoundsChanged.emit(bounds)添加到AutoLoad中
创建Camera2D的脚本
1 | class_name PlayerCamera extends Camera2D |
为Grass-01创建脚本
1 | class_name LevelTileMap extends TileMapLayer |
总结
- 场景加载时会更新全局的bounds
- LevelManager会更新数据并发送信号
- camera2D接收到信号并更新限制
问题解决
- 遇到问题camera与tilemap对不上,查到原因是tilemap位置偏差没有在原点
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Have a nice day!!