feat(boss): combat_s2 敌方子弹 MultiMesh 渲染层(红粉区分玩家弹)
This commit is contained in:
@@ -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"))
|
||||||
|
|||||||
Reference in New Issue
Block a user