feat(boss): combat_s2 敌方子弹 MultiMesh 渲染层(红粉区分玩家弹)
This commit is contained in:
@@ -9,6 +9,7 @@ var _player_node: Node2D = null
|
||||
## 世界渲染(MultiMeshInstance2D,§4.4 渲染优化)
|
||||
var _bullet_mm: MultiMesh = null
|
||||
var _enemy_mm: MultiMesh = null
|
||||
var _enemy_bullet_mm: MultiMesh = null
|
||||
|
||||
## UI 层引用
|
||||
var _hud_layer: CanvasLayer = null
|
||||
@@ -93,6 +94,7 @@ func _input(event: InputEvent) -> void:
|
||||
func _process(delta: float) -> void:
|
||||
# 世界渲染同步(SoA → MultiMesh)
|
||||
BulletManager.sync_multimesh(_bullet_mm)
|
||||
EnemyBulletManager.sync_multimesh(_enemy_bullet_mm)
|
||||
EnemyManager.sync_multimesh(_enemy_mm)
|
||||
_refresh_hud()
|
||||
_dps_poll_timer -= delta
|
||||
@@ -179,6 +181,20 @@ func _setup_world_view() -> void:
|
||||
bullet_mmi.material = bullet_mat
|
||||
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:
|
||||
_cm = Node.new()
|
||||
_cm.set_script(load("res://scripts/domain/combat/combat_manager.gd"))
|
||||
|
||||
Reference in New Issue
Block a user