feat(boss): combat_s2 敌方子弹 MultiMesh 渲染层(红粉区分玩家弹)

This commit is contained in:
2026-07-23 09:55:22 +08:00
parent f5d94a52f0
commit d4291722e8
+16
View File
@@ -9,6 +9,7 @@ var _player_node: Node2D = null
## 世界渲染(MultiMeshInstance2D,§4.4 渲染优化) ## 世界渲染(MultiMeshInstance2D,§4.4 渲染优化)
var _bullet_mm: MultiMesh = null var _bullet_mm: MultiMesh = null
var _enemy_mm: MultiMesh = null var _enemy_mm: MultiMesh = null
var _enemy_bullet_mm: MultiMesh = null
## UI 层引用 ## UI 层引用
var _hud_layer: CanvasLayer = null var _hud_layer: CanvasLayer = null
@@ -93,6 +94,7 @@ func _input(event: InputEvent) -> void:
func _process(delta: float) -> void: func _process(delta: float) -> void:
# 世界渲染同步(SoA → MultiMesh # 世界渲染同步(SoA → MultiMesh
BulletManager.sync_multimesh(_bullet_mm) BulletManager.sync_multimesh(_bullet_mm)
EnemyBulletManager.sync_multimesh(_enemy_bullet_mm)
EnemyManager.sync_multimesh(_enemy_mm) EnemyManager.sync_multimesh(_enemy_mm)
_refresh_hud() _refresh_hud()
_dps_poll_timer -= delta _dps_poll_timer -= delta
@@ -179,6 +181,20 @@ func _setup_world_view() -> void:
bullet_mmi.material = bullet_mat bullet_mmi.material = bullet_mat
add_child(bullet_mmi) add_child(bullet_mmi)
# 敌方子弹渲染器(红粉色 modulate,区分玩家黄弹)
_enemy_bullet_mm = MultiMesh.new()
_enemy_bullet_mm.transform_format = MultiMesh.TRANSFORM_2D
_enemy_bullet_mm.mesh = quad
_enemy_bullet_mm.instance_count = EnemyBulletManager.MAX_ENEMY_BULLETS
_enemy_bullet_mm.visible_instance_count = 0
var eb_mmi := MultiMeshInstance2D.new()
eb_mmi.multimesh = _enemy_bullet_mm
eb_mmi.modulate = Color(1.0, 0.35, 0.5)
var eb_mat := ShaderMaterial.new()
eb_mat.shader = load("res://shaders/bullet_glow.gdshader")
eb_mmi.material = eb_mat
add_child(eb_mmi)
func _setup_combat_manager() -> void: func _setup_combat_manager() -> void:
_cm = Node.new() _cm = Node.new()
_cm.set_script(load("res://scripts/domain/combat/combat_manager.gd")) _cm.set_script(load("res://scripts/domain/combat/combat_manager.gd"))