protected override void OnUpdating() { base.OnUpdating(); if (!MapEvents.Any(obj => obj.IsUpdated)) { foreach (MapObject item in Objects.Where(obj => obj is MapObject mapObject && (mapObject.GetGlobalPosition() - Player.Position).Length > 2500 && mapObject.IsUpdated)) { item.IsUpdated = false; if (item.CollisionShape is PhysicalRectangleShape shape) { shape.IsActive = false; } } foreach (MapObject item in Objects.Where(obj => obj is MapObject mapObject && (mapObject.GetGlobalPosition() - Player.Position).Length <= 2500 && !mapObject.IsUpdated)) { item.IsUpdated = true; if (item.CollisionShape is PhysicalRectangleShape shape) { shape.IsActive = true; } } } UpdateOtherPlayers(); if (!SavePoints.Any(obj => obj.IsActive)) { PhysicalWorld?.Update(); } UpdateCollision(); }
protected override void OnUpdated() { //イベント開始判定 if (!MapEvents.Any(obj => obj.IsUpdated)) { foreach (var item in MapEvents) { if (Player.CollisionShape.GetIsCollidedWith(item.Shape)) { item.IsUpdated = true; } } } UpdateDamage(); base.OnUpdated(); }