mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-06 01:15:42 -06:00
fix(game): track cursor and touch state in dirty flag for immediate visual feedback
Extends dirty_render_system to detect changes in CursorPosition and TouchState resources. This ensures re-renders trigger immediately when clicking to activate drag functionality, when cursor debug visualization updates, and when cursor fade-out occurs after timeout.
This commit is contained in:
@@ -2,9 +2,10 @@ use crate::error::{GameError, TextureError};
|
||||
use crate::map::builder::Map;
|
||||
use crate::systems::{
|
||||
debug_render_system, BatchedLinesResource, Collider, CursorPosition, DebugState, DebugTextureResource, Position, SystemId,
|
||||
SystemTimings, TtfAtlasResource,
|
||||
SystemTimings, TouchState, TtfAtlasResource,
|
||||
};
|
||||
use crate::texture::sprite::{AtlasTile, SpriteAtlas};
|
||||
use bevy_ecs::change_detection::DetectChanges;
|
||||
use bevy_ecs::component::Component;
|
||||
use bevy_ecs::entity::Entity;
|
||||
use bevy_ecs::event::EventWriter;
|
||||
@@ -92,8 +93,10 @@ pub fn dirty_render_system(
|
||||
mut dirty: ResMut<RenderDirty>,
|
||||
changed: Query<(), Or<(Changed<Renderable>, Changed<Position>, Changed<Visibility>)>>,
|
||||
removed_renderables: RemovedComponents<Renderable>,
|
||||
cursor: Res<CursorPosition>,
|
||||
touch_state: Res<TouchState>,
|
||||
) {
|
||||
if changed.iter().count() > 0 || !removed_renderables.is_empty() {
|
||||
if changed.iter().count() > 0 || !removed_renderables.is_empty() || cursor.is_changed() || touch_state.is_changed() {
|
||||
dirty.0 = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user