protected override void OnStart() { var scene = new asd.Scene(); var layer = new asd.Layer2D(); var obj = new asd.TextureObject2D(); scene.AddLayer(layer); layer.AddObject(obj); asd.Engine.ChangeScene(scene); var g = asd.Engine.Graphics; var texture = g.CreateTexture2D("Data/Texture/Sample1.png"); obj.Texture = texture; obj.Scale = new asd.Vector2DF(1, 1); pe = new asd.PostEffectGaussianBlur(); pe.Intensity = intensity; layer.AddPostEffect(pe); }
public void Run() { // 説明 Console.WriteLine("Z : グレースケール追加"); Console.WriteLine("X : セピア調追加"); Console.WriteLine("C : ガウスぼかし追加"); Console.WriteLine("V : ライトブルーム追加"); Console.WriteLine("A : 全てのポストエフェクト消去"); // aceを初期化する asd.Engine.Initialize("PostEffect", 640, 480, new asd.EngineOption()); // シーン等を初期化する var scene = new asd.Scene(); var layer = new asd.Layer2D(); var effectObj = new asd.EffectObject2D(); var effect = asd.Engine.Graphics.CreateEffect("Data/Effect/magic.efk"); scene.HDRMode = true; ; scene.AddLayer(layer); layer.AddObject(effectObj); asd.Engine.ChangeScene(scene); effectObj.Scale = new asd.Vector2DF(50, 50); effectObj.Position = new asd.Vector2DF(320, 240); effectObj.Effect = effect; effectObj.Play(); // aceが進行可能かチェックする。 while (asd.Engine.DoEvents()) { // aceを更新する。 asd.Engine.Update(); // Aを押したらポストエフェクトを全て破棄する。 if (asd.Engine.Keyboard.GetKeyState(asd.Keys.A) == asd.KeyState.Push) { layer.ClearPostEffects(); } // Zを押したらグレースケールを追加する。 if (asd.Engine.Keyboard.GetKeyState(asd.Keys.Z) == asd.KeyState.Push) { var posteffect = new asd.PostEffectGrayScale(); layer.AddPostEffect(posteffect); } // Xを押したらセピアを追加する。 if (asd.Engine.Keyboard.GetKeyState(asd.Keys.X) == asd.KeyState.Push) { var posteffect = new asd.PostEffectSepia(); layer.AddPostEffect(posteffect); } // Cを押したらガウスぼかしを追加する。 if (asd.Engine.Keyboard.GetKeyState(asd.Keys.C) == asd.KeyState.Push) { var posteffect = new asd.PostEffectGaussianBlur(); posteffect.Intensity = 5.0f; layer.AddPostEffect(posteffect); } // Vを押したらライトブルームを追加する。 if (asd.Engine.Keyboard.GetKeyState(asd.Keys.V) == asd.KeyState.Push) { var posteffect = new asd.PostEffectLightBloom(); posteffect.Intensity = 10.0f; posteffect.Exposure = 1.0f; posteffect.Threshold = 0.3f; layer.AddPostEffect(posteffect); } } // aceを終了する。 asd.Engine.Terminate(); }
public void Run() { // 説明 Console.WriteLine("Z : グレースケール追加"); Console.WriteLine("X : セピア調追加"); Console.WriteLine("C : ガウスぼかし追加"); Console.WriteLine("V : ライトブルーム追加"); Console.WriteLine("A : 全てのポストエフェクト消去"); // aceを初期化する asd.Engine.Initialize("PostEffect", 640, 480, new asd.EngineOption()); // シーン等を初期化する var scene = new asd.Scene(); var layer = new asd.Layer2D(); var effectObj = new asd.EffectObject2D(); var effect = asd.Engine.Graphics.CreateEffect("Data/Effect/magic.efk"); scene.HDRMode = true;; scene.AddLayer(layer); layer.AddObject(effectObj); asd.Engine.ChangeScene(scene); effectObj.Scale = new asd.Vector2DF(50, 50); effectObj.Position = new asd.Vector2DF(320, 240); effectObj.Effect = effect; effectObj.Play(); // aceが進行可能かチェックする。 while (asd.Engine.DoEvents()) { // aceを更新する。 asd.Engine.Update(); // Aを押したらポストエフェクトを全て破棄する。 if (asd.Engine.Keyboard.GetKeyState(asd.Keys.A) == asd.KeyState.Push) { layer.ClearPostEffects(); } // Zを押したらグレースケールを追加する。 if (asd.Engine.Keyboard.GetKeyState(asd.Keys.Z) == asd.KeyState.Push) { var posteffect = new asd.PostEffectGrayScale(); layer.AddPostEffect(posteffect); } // Xを押したらセピアを追加する。 if (asd.Engine.Keyboard.GetKeyState(asd.Keys.X) == asd.KeyState.Push) { var posteffect = new asd.PostEffectSepia(); layer.AddPostEffect(posteffect); } // Cを押したらガウスぼかしを追加する。 if (asd.Engine.Keyboard.GetKeyState(asd.Keys.C) == asd.KeyState.Push) { var posteffect = new asd.PostEffectGaussianBlur(); posteffect.Intensity = 5.0f; layer.AddPostEffect(posteffect); } // Vを押したらライトブルームを追加する。 if (asd.Engine.Keyboard.GetKeyState(asd.Keys.V) == asd.KeyState.Push) { var posteffect = new asd.PostEffectLightBloom(); posteffect.Intensity = 10.0f; posteffect.Exposure = 1.0f; posteffect.Threshold = 0.3f; layer.AddPostEffect(posteffect); } } // aceを終了する。 asd.Engine.Terminate(); }
public IEnumerator Save() { IsActive = true; Layer.Scene.HDRMode = true; foreach (var item in Layer.Objects.Where(obj => obj != this && !(obj is MapEvent.MapEvent))) { item.IsUpdated = false; } var blur = new asd.PostEffectGaussianBlur(); Layer.AddPostEffect(blur); foreach (Player item in Layer.Objects.Where(obj => obj is Player)) { item.HP = Player.MaxHP; } for (int i = 0; i < 20; i++) { yield return(0); } YesNoLayer2D askSave = new YesNoLayer2D("セーブする?"); askSave.DrawingPriority = 3; Layer.Scene.AddLayer(askSave); askSave.IsUpdated = false; for (int i = 0; i < 15; i++) { blur.Intensity = i * 0.2f; foreach (asd.DrawnObject2D item in askSave.Objects) { item.Color = new asd.Color(255, 255, 255, (int)(255f * i / 15)); } yield return(0); } askSave.IsUpdated = true; while (!askSave.IsEnd) { yield return(0); } for (int i = 0; i < 15; i++) { foreach (asd.DrawnObject2D item in askSave.Objects) { item.Color = new asd.Color(255, 255, 255, (int)(255f - 255f * i / 15)); } yield return(0); } if (askSave.IsYes) { askSave.Dispose(); SaveLayer2D save = new SaveLayer2D(ID); save.DrawingPriority = 3; Layer.Scene.AddLayer(save); save.IsUpdated = false; for (int i = 0; i < 15; i++) { foreach (asd.DrawnObject2D item in save.Objects) { var temp = item.Color; temp.A = (byte)(255f * i / 15); item.Color = temp; } yield return(0); } save.IsUpdated = true; while (!save.IsEnd) { yield return(0); } for (int i = 0; i < 15; i++) { foreach (asd.DrawnObject2D item in save.Objects) { item.Color = new asd.Color(255, 255, 255, (int)(255f - 255f * i / 15)); } yield return(0); } save.Dispose(); YesNoLayer2D askEnd = new YesNoLayer2D("タイトルに戻る?"); askEnd.DrawingPriority = 3; Layer.Scene.AddLayer(askEnd); askEnd.IsUpdated = false; for (int i = 0; i < 15; i++) { foreach (asd.DrawnObject2D item in askEnd.Objects) { item.Color = new asd.Color(255, 255, 255, (int)(255f * i / 15)); } yield return(0); } askEnd.IsUpdated = true; while (!askEnd.IsEnd) { yield return(0); } if (askEnd.IsYes) { (Layer.Scene as GameScene)?.End(); } for (int i = 0; i < 15; i++) { blur.Intensity = 3f - i * 0.2f; foreach (asd.DrawnObject2D item in askEnd.Objects) { item.Color = new asd.Color(255, 255, 255, (int)(255f - 255f * i / 15)); } yield return(0); } askEnd.Dispose(); } else { askSave.Dispose(); for (int i = 0; i < 15; i++) { blur.Intensity = 3f - i * 0.2f; yield return(0); } } foreach (var item in Layer.Objects.Where(obj => !(obj is MapEvent.MapEvent))) { item.IsUpdated = true; } Layer.ClearPostEffects(); IsActive = false; Layer.Scene.HDRMode = false; yield return(0); }