예제 #1
0
    public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("TextObject2D_Filter", 640, 480, new asd.EngineOption());

        {
            // フォントと文字描画オブジェクトの設定を行う。
            var edgeFont = asd.Engine.Graphics.CreateFont("Data/Font/Font1.aff");
            var edgeObj = new asd.TextObject2D();
            edgeObj.Font = edgeFont;
            edgeObj.Position = new asd.Vector2DF(100, 100);

            // 回転角を設定する。
            edgeObj.Angle = 30;

            // 描画のフィルタを線形補間にすることによって、描画時に境界がギザギザにならないように設定する。
            edgeObj.TextureFilterType = asd.TextureFilterType.Linear;

            edgeObj.Text = "ギザギザをなくした文字列の描画";

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(edgeObj);
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
            Recorder.TakeScreenShot("TextObject2D_Filtered", 20);
        }

        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
예제 #2
0
    public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("TextObject2D_Rotate", 640, 480, new asd.EngineOption());

        {
            // フォントと文字列描画オブジェクトの設定を行う。
            var edgeFont = asd.Engine.Graphics.CreateFont("Data/Font/Font1.aff");
            var edgeObj = new asd.TextObject2D();
            edgeObj.Font = edgeFont;
            edgeObj.Position = new asd.Vector2DF(100, 100);

            //回転角と描画する文字列を設定する。
            edgeObj.Angle = 30;
            edgeObj.Text = "文字列の回転描画";

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(edgeObj);
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
            Recorder.TakeScreenShot("TextObject2D_Rotate", 20);
        }

        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
예제 #3
0
		public void Run()
		{
			Engine.Initialize("Selector_Basic", 640, 480, new EngineOption());

			var selector = new SimpleSelector<int>();				// Selectorクラスを作成する。
			selector.ItemSpan = new Vector2DF(0, 40);				// 選択肢オブジェクトの位置同士の間のベクトル
			selector.Cursor.Texture = Engine.Graphics.CreateTexture2D("Data/Selector/ListCursor.png");	// カーソルのテクスチャを設定
			selector.BindKey(Keys.Down, Keys.Up, Keys.Z, Keys.X);	// 操作方法を設定
			Engine.AddObject2D(selector);							// Altseedのシステムに追加

			// 選択肢オブジェクトを作成する
			var font = Engine.Graphics.CreateDynamicFont("", 28, new Color(255, 0, 0), 0, new Color(255, 255, 255));
			for (int i = 0; i < 9; i++)
			{
				var obj = new TextObject2D
				{
					Font = font,
					Text = $"選択肢{i}"
				};
				selector.AddChoice(i, obj);
			}
			
			// メインループ
			while(Engine.DoEvents())
			{
				Engine.Update();
				Recorder.TakeScreenShot("Selector_Basic", 20);
			}
			
			Engine.Terminate();
		}
예제 #4
0
    public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("TextObject2D_Rotate", 640, 480, new asd.EngineOption());

        {
            // フォントと文字列描画オブジェクトの設定を行う。
            var edgeFont = asd.Engine.Graphics.CreateFont("Data/Font/Font1.aff");
            var edgeObj  = new asd.TextObject2D();
            edgeObj.Font     = edgeFont;
            edgeObj.Position = new asd.Vector2DF(100, 100);

            //回転角と描画する文字列を設定する。
            edgeObj.Angle = 30;
            edgeObj.Text  = "文字列の回転描画";

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(edgeObj);
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
            Recorder.TakeScreenShot("TextObject2D_Rotate", 20);
        }

        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
예제 #5
0
		protected override void OnStart()
		{
			var layout = new LinearPanel()
			{
				ItemSpan = new Vector2DF(0, 36),
			};
			var selector = new Selector<int, Control>(CreateController(), layout);
			selector.BindKey(Control.Down, Control.Up, Control.Decide, Control.Cancel);
			selector.Cursor.Texture = Engine.Graphics.CreateTexture2D("ListCursor.png");
			selector.IsControllerUpdated = true;

			var font = Engine.Graphics.CreateDynamicFont("", 20, new Color(255, 0, 0, 255), 0, new Color(0, 0, 0, 0));

			var size = selector.Cursor.Texture.Size;

			var scroll = new ScrollLayer()
			{
				Position = new Vector2DF(30, 30),
				CameraSize = new Vector2DF(200, 200),
				BindingAreaRange = new RectF(0, 25, 200, 150),
				BoundaryStartingPosition = new Vector2DF(0, 0),
				BoundaryEndingPosition = layout.ItemSpan * 10 + new Vector2DF(200, 0),
			};
			var areaChanged = selector.OnSelectionChanged
				.Select(c => selector.GetItemForChocie(c).Position)
				.Select(p => new RectF(p.X, p.Y, size.X, size.Y));
			scroll.SubscribeSeeingArea(areaChanged);

			var scene = new Scene();
			Engine.ChangeScene(scene);
			scene.AddLayer(scroll);
			scroll.AddObject(selector);

			for(int i = 0; i < 10; i++)
			{
				var obj = new TextObject2D()
				{
					Font = font,
					Text = $"アイテム{i}",
				};
				selector.AddChoice(i, obj);
			}

			var heart1 = new TextureObject2D()
			{
				Position = scroll.BoundaryEndingPosition - new Vector2DF(50, 50),
				Texture = Engine.Graphics.CreateTexture2D("Heart.png"),
			};
			scroll.AddObject(heart1);
			var heart2 = new TextureObject2D()
			{
				Position = scroll.BoundaryStartingPosition - new Vector2DF(0, 50),
				Texture = Engine.Graphics.CreateTexture2D("Heart.png"),
			};
			scroll.AddObject(heart2);

			var viewer = new ScrollBoundViewer(scroll);
			scroll.AddObject(viewer);
		}
예제 #6
0
    static void Main(string[] args)
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("CameraObject2D_Basic", 640, 800, new asd.EngineOption());

        // 画像を読み込む。
        var tex0 = asd.Engine.Graphics.CreateTexture2D("test.png");

        // テクスチャを描画するオブジェクトを設定する。
        var font = asd.Engine.Graphics.CreateDynamicFont("", 15, new asd.Color(255, 0, 0, 255), 1, new asd.Color(255, 255, 255, 255));

        int i = 0;

        foreach (Animation.Easing item in Enum.GetValues(typeof(Animation.Easing)))
        {
            // 文字描画オブジェクトを生成する。
            var obj = new asd.TextObject2D();
            // 描画に使うフォントを設定する。
            obj.Font = font;
            // 描画位置を指定する。
            obj.Position = new asd.Vector2DF(50, 50 + i * 18);
            // 描画する文字列を指定する。
            obj.Text = item.ToString();

            var component = new AnimationComponent();
            var anm       = new Animation();
            anm.Alpha(0, 0, 1);
            anm.Sleep(180 * i);
            anm.Alpha(0, 255, 60, item);
            anm.MoveTo(obj.Position + new asd.Vector2DF(400, 0), 70, item);
            anm.RotateTo(360, 40, item);
            anm.MoveTo(obj.Position, 70, item);
            component.AddAnimation(obj, anm);
            var anm2 = new Animation();
            anm2.Sleep(180 * i + 61);
            anm2.ScaleTo(new asd.Vector2DF(3, 3), 70, item);
            anm2.Sleep(40);
            anm2.ScaleTo(new asd.Vector2DF(1, 1), 70, item);
            component.AddAnimation(obj, anm2, 1);
            obj.AddComponent(component, "animation");

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(obj);

            i++;
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
        }

        // Altseedを終了する。
        asd.Engine.Terminate();
    }
예제 #7
0
		protected override void OnUpdate()
		{
			if(Engine.Keyboard.GetKeyState(Keys.Q) == KeyState.Push)
			{
				var obj = new TextObject2D()
				{
					Font = font,
					Text = "追加アイテム",
				};
				layout.AddItem(obj);
				linearPanel.AddItem(obj);
			}
			else if(Engine.Keyboard.GetKeyState(Keys.W) == KeyState.Push && layout.Items.Skip(3).Any())
			{
				var obj = new TextObject2D()
				{
					Font = font,
					Text = "挿入アイテム",
				};
				layout.InsertItem(3, obj);
				linearPanel.InsertItem(3, obj);
			}

			if(Engine.Keyboard.GetKeyState(Keys.LeftAlt) == KeyState.Hold)
			{
				if(Engine.Keyboard.GetKeyState(Keys.E) == KeyState.Push)
				{
					var item = layout.Items.Skip(2).FirstOrDefault();
					if(item != null)
					{
						layout.RemoveItem(item);
						linearPanel.RemoveItem(item);
					}
				}
				else if(Engine.Keyboard.GetKeyState(Keys.R) == KeyState.Push)
				{
					layout.ClearItem();
					linearPanel.ClearItem();
				}
			}
			else
			{
				if(Engine.Keyboard.GetKeyState(Keys.E) == KeyState.Push)
				{
					layout.Items.Skip(2).FirstOrDefault()?.Dispose();
				}
				else if(Engine.Keyboard.GetKeyState(Keys.R) == KeyState.Push)
				{
					foreach(var item in layout.Items)
					{
						item.Dispose();
					}
				}
			}
		}
        protected override void OnStart()
        {
            selector = new ScrollingSelector<int, Control>(CreateController())
            {
                Position = new Vector2DF(60, 32),
                CursorOffset = new Vector2DF(-5, 3),
                LineSpan = 36,
                LineWidth = 360,
                BoundLines = 8,
                ExtraLinesOnStarting = 1,
                ExtraLinesOnEnding = 1,
                IsControllerUpdated = true,
				Loop = true,
            };
            selector.BindKey(Control.Down, Control.Up, Control.Decide, Control.Cancel);
            selector.Cursor.Texture = Engine.Graphics.CreateTexture2D("ListCursor.png");
            selector.SetEasingScrollUp(EasingStart.StartRapidly2, EasingEnd.EndSlowly3, 10);

            font = Engine.Graphics.CreateFont("MPlusB.aff");

            var scene = new ReactiveScene();

			var background = new Layer2D();
			background.AddObject(new GeometryObject2D()
			{
				Shape = new RectangleShape() { DrawingArea = new RectF(0, 0, 640, 480) },
				Color = new Color(255, 255, 255, 255),
			});
			background.AddObject(new TextureObject2D()
			{
				Texture = Engine.Graphics.CreateTexture2D("ListWindowLarge.png"),
				Position = new Vector2DF(30, 30),
				DrawingPriority = 1,
			});
			scene.AddLayer(background);

			scene.AddLayer(selector);
			Engine.ChangeScene(scene);

			for(int i = 0; i < 15; i++)
            {
                var obj = new TextObject2D()
                {
                    Font = font,
                    Text = $"アイテム{i}",
					Color = new Color(225, 160, 0, 255),
                };
                selector.AddChoice(i, obj);
            }

            selector.SetDebugCameraUp();
        }
예제 #9
0
    public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("File_StreamFile", 640, 480, new asd.EngineOption());

        // フォントを生成する。
        var font = asd.Engine.Graphics.CreateFont("Data/Font/Font1.aff");

        // オブジェクトを生成する。
        var obj = new asd.TextObject2D();

        // 描画に使うフォントを設定する
        obj.Font = font;

        // 描画位置を指定する
        obj.Position = new asd.Vector2DF(100, 100);

        // ファイルオブジェクト作成
        var staticFile = asd.Engine.File.CreateStreamFile("Data/Text/HelloWorld.txt");

        // ファイルの内容をバッファへ格納
        var buffer = new List <byte>();

        staticFile.Read(buffer, 32);

        // UTF-8でバイト列をデコードする
        string text = asd.StringHelper.ConvertUTF8(buffer);

        // 描画する文字列の指定
        obj.Text = text;

        // オブジェクトのインスタンスをエンジンへ追加する。
        asd.Engine.AddObject2D(obj);

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
            Recorder.TakeScreenShot("File_StreamFile", 30);
        }

        // Altseedを終了する。
        asd.Engine.Terminate();
    }
예제 #10
0
    protected override void OnAdded()
    {
        Name = "InfoLayer";

        var panelShape = new asd.RectangleShape();

        panelShape.DrawingArea = new asd.RectF(0, 0, 640, PanelHeight);
        var panel = new asd.GeometryObject2D();

        panel.Shape    = panelShape;
        panel.Color    = new asd.Color(16, 16, 16, 255);
        panel.Position = new asd.Vector2DF(0, 480 - PanelHeight);

        var font = asd.Engine.Graphics.CreateDynamicFont("", 12, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));

        title                 = new asd.TextObject2D();
        title.Font            = font;
        title.Text            = "";
        title.Color           = new asd.Color(255, 255, 0);
        title.Position        = new asd.Vector2DF(2, 2);
        title.DrawingPriority = 1;

        className                 = new asd.TextObject2D();
        className.Font            = font;
        className.Text            = "";
        className.Color           = new asd.Color(128, 255, 225);
        className.Position        = new asd.Vector2DF(2, 2);
        className.DrawingPriority = 1;

        description                 = new asd.TextObject2D();
        description.Font            = font;
        description.Text            = "";
        description.Color           = new asd.Color(255, 255, 255);
        description.Position        = new asd.Vector2DF(6, 22);
        description.DrawingPriority = 1;

        panel.AddChild(title, asd.ChildManagementMode.Nothing, asd.ChildTransformingMode.Position);
        panel.AddChild(description, asd.ChildManagementMode.Nothing, asd.ChildTransformingMode.Position);
        panel.AddChild(className, asd.ChildManagementMode.RegistrationToLayer, asd.ChildTransformingMode.Position);

        AddObject(panel);
        AddObject(title);
        AddObject(description);
    }
예제 #11
0
		public void Run()
		{
			Engine.Initialize(nameof(Controller_Bundle), 640, 480, new EngineOption());

			var keyboard = new KeyboardController<MyAction>();	// KeyboardControllerクラスを作成
			keyboard.BindKey(Keys.Up, MyAction.Plus);			// 方向キーの上を"Plus"アクションに対応付け
			keyboard.BindKey(Keys.Down, MyAction.Minus);        // 方向キーの下を"Minus"アクションに対応付け

			// SteppingControllerクラスを作成
			var stepping = new SteppingController<MyAction>(keyboard);
			// "Plus"アクションを30Fの間押しっぱなしにしたら、2フレーム間隔で連続入力するよう設定
			stepping.EnableSteppingHold(MyAction.Plus, 30, 2);
			// "Minus"アクションを30Fの間押しっぱなしにしたら、2フレーム間隔で連続入力するよう設定
			stepping.EnableSteppingHold(MyAction.Minus, 30, 2);
			
			// アクションによって増減する値を表示するオブジェクトを作成する。
			var font = Engine.Graphics.CreateDynamicFont("", 24, new Color(255, 255, 255, 255), 0, new Color());
			int count = 10;
			var numText = new TextObject2D();
			numText.Position = new Vector2DF(0, 0);
			numText.Text = $"↑\n{count}\n↓";
			numText.Font = font;
			Engine.AddObject2D(numText);

			// メインループ
			while(Engine.DoEvents())
			{
				if (stepping.GetState(MyAction.Plus) == InputState.Push)
				{
					count++;
				}
				else if (stepping.GetState(MyAction.Minus) == InputState.Push)
				{
					count--;
				}
				numText.Text = $"↑\n{count}\n↓";

				stepping.Update();	// コントローラーの処理を進める
				Engine.Update();
				Recorder.TakeScreenShot(nameof(Controller_Bundle), 60);
			}

			Engine.Terminate();
		}
예제 #12
0
        protected override void OnStart()
        {
            layout = new LinearPanel();
            Engine.AddObject2D(layout);

            font = Engine.Graphics.CreateDynamicFont("", 20, new Color(255, 255, 255, 255), 0, new Color(0, 0, 0, 255));
            for(int i = 0; i < 7; i++)
            {
                var obj = new TextObject2D()
                {
                    Font = font,
                    Text = $"選択肢{i}",
                };
                layout.AddItem(obj);
                Engine.AddObject2D(obj);
            }

            layout.StartingOffset = new Vector2DF(10, 10);
            layout.ItemSpan = new Vector2DF(5, 20);
        }
예제 #13
0
    public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("TextObject2D_Basic", 640, 480, new asd.EngineOption());

        {
            // フォントを生成する。
            var font = asd.Engine.Graphics.CreateFont("Data/Font/Font1.aff");

            // 文字描画オブジェクトを生成する。
            var obj = new asd.TextObject2D();

            // 描画に使うフォントを設定する。
            obj.Font = font;

            // 描画位置を指定する。
            obj.Position = new asd.Vector2DF(100, 100);

            // 描画する文字列を指定する。
            obj.Text = "普通の文字列描画";

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(obj);
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
            Recorder.TakeScreenShot("TextObject2D_Basic", 20);
        }

        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
예제 #14
0
    public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("TextObject2D_Basic", 640, 480, new asd.EngineOption());

        {
            // フォントを生成する。
            var font = asd.Engine.Graphics.CreateFont("Data/Font/Font1.aff");

            // 文字描画オブジェクトを生成する。
            var obj = new asd.TextObject2D();

            // 描画に使うフォントを設定する。
            obj.Font = font;

            // 描画位置を指定する。
            obj.Position = new asd.Vector2DF(100, 100);

            // 描画する文字列を指定する。
            obj.Text = "普通の文字列描画";

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(obj);
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
            Recorder.TakeScreenShot("TextObject2D_Basic", 20);
        }

        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
예제 #15
0
    public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("TextObject2D_DynamicFont", 640, 480, new asd.EngineOption());

        {
            // 動的フォントを生成する。
            var font = asd.Engine.Graphics.CreateDynamicFont(string.Empty, 35, new asd.Color(255, 0, 0, 255), 1, new asd.Color(255, 255, 255, 255));

            // 文字描画オブジェクトを生成する。
            var obj = new asd.TextObject2D();

            // 描画に使うフォントを設定する。
            obj.Font = font;

            // 描画位置を指定する。
            obj.Position = new asd.Vector2DF(100, 100);

            // 描画する文字列を指定する。
            obj.Text = "動的フォントによる文字列描画";

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(obj);
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
            Recorder.TakeScreenShot("TextObject2D_DynamicFont", 20);
        }

        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
예제 #16
0
    public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("TextObject2D_DynamicFont", 640, 480, new asd.EngineOption());

        {
            // 動的フォントを生成する。
            var font = asd.Engine.Graphics.CreateDynamicFont(string.Empty, 35, new asd.Color(255, 0, 0, 255), 1, new asd.Color(255, 255, 255, 255));

            // 文字描画オブジェクトを生成する。
            var obj = new asd.TextObject2D();

            // 描画に使うフォントを設定する。
            obj.Font = font;

            // 描画位置を指定する。
            obj.Position = new asd.Vector2DF(100, 100);

            // 描画する文字列を指定する。
            obj.Text = "動的フォントによる文字列描画";

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(obj);
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
            Recorder.TakeScreenShot("TextObject2D_DynamicFont", 20);
        }

        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
예제 #17
0
    public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("TextObject2D_Filter", 640, 480, new asd.EngineOption());


        {
            // フォントと文字描画オブジェクトの設定を行う。
            var edgeFont = asd.Engine.Graphics.CreateFont("Data/Font/Font1.aff");
            var edgeObj  = new asd.TextObject2D();
            edgeObj.Font     = edgeFont;
            edgeObj.Position = new asd.Vector2DF(100, 100);

            // 回転角を設定する。
            edgeObj.Angle = 30;

            // 描画のフィルタを線形補間にすることによって、描画時に境界がギザギザにならないように設定する。
            edgeObj.TextureFilterType = asd.TextureFilterType.Linear;

            edgeObj.Text = "ギザギザをなくした文字列の描画";

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(edgeObj);
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
            Recorder.TakeScreenShot("TextObject2D_Filtered", 20);
        }

        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
예제 #18
0
    public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("Keyboard_PuralKeys", 640, 480, new asd.EngineOption());

        var font = asd.Engine.Graphics.CreateDynamicFont(string.Empty, 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));

        // キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
        var keyStateText = new asd.TextObject2D();
        keyStateText.Position = new asd.Vector2DF(10, 10);
        keyStateText.Font = font;
        asd.Engine.AddObject2D(keyStateText);

        // 入力チェックするキー一覧。(Z, X, C, V, B)
        List<asd.Keys> keys
            = new List<asd.Keys>() {
                asd.Keys.Z,
                asd.Keys.X,
                asd.Keys.C,
                asd.Keys.V,
                asd.Keys.B
            };

        //キーを文字列に変換するマップ。
        Dictionary<asd.Keys, string> keyToStr
            = new Dictionary<asd.Keys, string>()
        {
            { asd.Keys.Z, "Z" },
            { asd.Keys.X, "X" },
            { asd.Keys.C, "C" },
            { asd.Keys.V, "V" },
            { asd.Keys.B, "B" }
        };

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            string displayStr = string.Empty;

            //すべてのキーに対して入力状態を確認してから表示する。
            foreach (var key in keys)
            {
                var keyStr = keyToStr[key];

                // キーボードのZキーの入力状態を取得する。
                switch (asd.Engine.Keyboard.GetKeyState(key))
                {
                    case asd.KeyState.Free: // 前フレームと本フレームで非押下
                        displayStr += (keyStr + "キーを離しています。");
                        break;
                    case asd.KeyState.Hold: // 前フレームと本フレームで押下
                        displayStr += (keyStr + "キーを押しています。");
                        break;
                    case asd.KeyState.Release: // 前フレームで押下、本フレームで非押下
                        displayStr += (keyStr + "キーを離しました!");
                        break;
                    case asd.KeyState.Push: // 前フレームで非押下、本フレームで押下
                        displayStr += (keyStr + "キーを押しました!");
                        break;
                }

                displayStr += "\n";
            }

            // キー入力状態を示す文字列を更新する。
            keyStateText.Text = displayStr;

            // Altseedを更新する。
            asd.Engine.Update();

            Recorder.CaptureScreen("Keyboard_PuralKeys", 30, 60, 0.2f, 0.5f);
        }

        //Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
예제 #19
0
		public void Run()
		{
			Engine.Initialize(nameof(Controller_Bundle), 640, 480, new EngineOption());

			var keyboard = new KeyboardController<MyAction>();    // KeyboardControllerクラスを作成
			keyboard.BindKey(Keys.Right, MyAction.Advance);       // 方向キーの右を"Advance"アクションに対応付け
			keyboard.BindKey(Keys.Left, MyAction.Back);           // 方向キーの左を"Back"アクションに対応付け
			keyboard.BindKey(Keys.Z, MyAction.Jump);              // Zキーを		"Jump"アクションに対応付け
			keyboard.BindKey(Keys.X, MyAction.Attack);            // Xキーを		"Attack"アクションに対応付け

			var joystick = new JoystickController<MyAction>(0);				// JoystickControllerクラスを作成
			joystick.BindAxis(0, AxisDirection.Positive, MyAction.Advance);	// 左スティックの右方向への入力を"Advance"アクションに対応付け
			joystick.BindAxis(0, AxisDirection.Negative, MyAction.Back);    // 左スティックの左方向への入力を"Back"アクションに対応付け
			joystick.BindButton(0, MyAction.Jump);                          // ボタン1の入力を"Jump"アクションに対応付け
			joystick.BindButton(1, MyAction.Attack);                        // ボタン2の入力を"Attack"アクションに対応付け

			// 用意したKeyboardControllerとJoystickControllerの入力を合体させた新しいコントローラーを作成
			var bundle = new BundleController<MyAction>(keyboard, joystick);

			//ボタンを押したときに表示するオブジェクトたちを作成
			var font = Engine.Graphics.CreateDynamicFont("", 24, new Color(255, 255, 255, 255), 0, new Color());

			var advanceText = new TextObject2D();
			advanceText.Position = new Vector2DF(0, 0);
			advanceText.Text = "Advance";
			advanceText.Font = font;
			Engine.AddObject2D(advanceText);

			var backText = new TextObject2D();
			backText.Position = new Vector2DF(0, 30);
			backText.Text = "Back";
			backText.Font = font;
			Engine.AddObject2D(backText);

			var jumpText = new TextObject2D();
			jumpText.Position = new Vector2DF(0, 60);
			jumpText.Text = "Jump";
			jumpText.Font = font;
			Engine.AddObject2D(jumpText);

			var attackText = new TextObject2D();
			attackText.Position = new Vector2DF(0, 90);
			attackText.Text = "Attack!";
			attackText.Font = font;
			Engine.AddObject2D(attackText);

			// メインループ
			while(Engine.DoEvents())
			{
				// "Advance"アクションに対応付けられたキーが押されているとき、"Advance"と表示する。以下もほぼ同じ
				// 合体して作ったBundleControllerのGetStateを呼び出せば、登録したコントローラーの入力を統合した結果が得られる
				advanceText.IsDrawn = bundle.GetState(MyAction.Advance) == InputState.Hold;
				backText.IsDrawn = bundle.GetState(MyAction.Back) == InputState.Hold;
				jumpText.IsDrawn = bundle.GetState(MyAction.Jump) == InputState.Hold;
				attackText.IsDrawn = bundle.GetState(MyAction.Attack) == InputState.Hold;

				bundle.Update();	// コントローラーの処理を進める
				Engine.Update();
				Recorder.TakeScreenShot(nameof(Controller_Bundle), 60);
			}

			Engine.Terminate();
		}
		protected override void OnStart()
		{
			Func<Object2D> cursorCreator = () => new TextureObject2D()
			{
				Texture = Engine.Graphics.CreateTexture2D("ListCursor.png"),
				Color = new Color(0, 255, 0, 128),
			};

			selector = new ScrollingMultiSelector<int, Control>(CreateController(), cursorCreator)
			{
				Position = new asd.Vector2DF(60, 35),
				CursorOffset = new asd.Vector2DF(-5, 3),
				LineSpan = 36,
				LineWidth = 360,
				BoundLines = 9,
				ExtraLinesOnStarting = 1,
				ExtraLinesOnEnding = 0,
				IsControllerUpdated = true,
				Loop = true,
			};
			selector.BindKey(Control.Down, Control.Up, Control.Decide, Control.Cancel, Control.Sub);
			selector.Cursor.Texture = Engine.Graphics.CreateTexture2D("ListCursor.png");
			selector.SetEasingScrollUp(EasingStart.StartRapidly2, EasingEnd.EndSlowly3, 10);

			var font = Engine.Graphics.CreateFont("MPlusB.aff");

			var scene = new ReactiveScene();

			var background = new Layer2D();
			background.AddObject(new GeometryObject2D()
			{
				Shape = new RectangleShape() { DrawingArea = new RectF(0, 0, 640, 480) },
				Color = new Color(255, 255, 255, 255),
			});
			background.AddObject(new TextureObject2D()
			{
				Texture = Engine.Graphics.CreateTexture2D("ListWindowLarge.png"),
				Position = new Vector2DF(30, 30),
				DrawingPriority = 1,
			});
			scene.AddLayer(background);

			scene.AddLayer(selector);
			Engine.ChangeScene(scene);

			for(int i = 0; i < 24; i++)
			{
				var obj = new TextObject2D()
				{
					Font = font,
					Text = $"アイテム{i}",
					Color = new Color(225, 160, 0, 255),
				};
				selector.AddChoice(i, obj);
			}

			var moveSound = Engine.Sound.CreateSoundSource("kachi38.wav", true);
			var decideSound = Engine.Sound.CreateSoundSource("pi78.wav", true);
			var cancelSound = Engine.Sound.CreateSoundSource("pi11.wav", true);

			selector.OnSelectionChanged.Subscribe(i =>
			{
				var handle = Engine.Sound.Play(moveSound);
				Engine.Sound.SetVolume(handle, 0.3f);
			});
			selector.OnDecide.Subscribe(i =>
			{
				var handle = Engine.Sound.Play(decideSound);
				Engine.Sound.SetVolume(handle, 0.3f);
			});
			selector.OnCancel.Subscribe(i => Engine.Sound.Play(cancelSound));
			selector.OnAdd.Subscribe(i => Engine.Sound.Play(decideSound));
			selector.OnRemove.Subscribe(i => Engine.Sound.Play(cancelSound));
			selector.OnDecideForMulti.Subscribe(xs =>
			{
				foreach(var x in xs.ToList())
				{
					selector.GetItemForChoice(x)?.Dispose();
					selector.RemoveChoice(x);
				}
			});

			//selector.SetDebugCameraUp();
		}
예제 #21
0
		public SampleInfoLayer(float totalHeight)
		{
			var scrollBarHeight = SampleBrowser.ViewerHeight / totalHeight * SampleBrowser.ViewerHeight;
			ScrollBar = new GeometryObject2D
			{
				Shape = new RectangleShape
				{
					DrawingArea = new RectF(0, 0, ScrollBerWidth, scrollBarHeight - SampleBrowser.Margin * 2)
				},
				Color = new Color(64, 64, 64, 255),
				Position = new Vector2DF(ScrollBarX, SampleBrowser.DescriptionHeight + SampleBrowser.Margin),
				DrawingPriority = 9
			};
			TotalHeight = totalHeight;
			AddObject(ScrollBar);

			Name = "InfoLayer";

			var panel = new GeometryObject2D
			{
				Shape = new RectangleShape
				{
					DrawingArea = new RectF(0, 0, 640, SampleBrowser.DescriptionHeight)
				},
				Color = new Color(16, 16, 16, 255),
				Position = new Vector2DF(0, 480 - SampleBrowser.DescriptionHeight)
			};

			var font = Engine.Graphics.CreateDynamicFont("", 12, new Color(255, 255, 255, 255), 1, new Color(0, 0, 0, 255));
			Title = new TextObject2D
			{
				Font = font,
				Text = "",
				Color = new Color(255, 255, 0),
				Position = new Vector2DF(2, 2),
				DrawingPriority = 1
			};

			ClassName = new TextObject2D
			{
				Font = font,
				Text = "",
				Color = new Color(128, 255, 225),
				Position = new Vector2DF(2, 2),
				DrawingPriority = 1
			};

			Description = new TextObject2D
			{
				Font = font,
				Text = "",
				Color = new Color(255, 255, 255),
				Position = new Vector2DF(6, 22),
				DrawingPriority = 1
			};

			panel.AddChild(Title, ChildManagementMode.Nothing, ChildTransformingMode.Position);
			panel.AddChild(Description, ChildManagementMode.Nothing, ChildTransformingMode.Position);
			panel.AddChild(ClassName, ChildManagementMode.RegistrationToLayer, ChildTransformingMode.Position);

			AddObject(panel);
			AddObject(Title);
			AddObject(Description);
		}
예제 #22
0
 public void AddLayer(asd.Layer2D layer)
 {
     _valueText      = new asd.TextObject2D();
     _valueText.Font = Singleton.Font;
     layer.AddObject(_valueText);
 }
예제 #23
0
    public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("Keyboard_PuralKeys", 640, 480, new asd.EngineOption());

        var font = asd.Engine.Graphics.CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));

        // キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
        var keyStateText = new asd.TextObject2D();

        keyStateText.Position = new asd.Vector2DF(10, 10);
        keyStateText.Font     = font;
        asd.Engine.AddObject2D(keyStateText);

        // 入力チェックするキー一覧。(Z, X, C, V, B)
        List <asd.Keys> keys = new List <asd.Keys>();

        keys.Add(asd.Keys.Z);
        keys.Add(asd.Keys.X);
        keys.Add(asd.Keys.C);
        keys.Add(asd.Keys.V);
        keys.Add(asd.Keys.B);

        //キーの文字列表現。
        List <string> keyStrs = new List <string>();

        keyStrs.Add("Z");
        keyStrs.Add("X");
        keyStrs.Add("C");
        keyStrs.Add("V");
        keyStrs.Add("B");

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            string displayStr = "";

            //すべてのキーに対して入力状態を確認してから表示する。
            for (int i = 0; i < keys.Count; i++)
            {
                string keystr = keyStrs[i];

                // キーボードのZキーの入力状態を取得する。
                asd.KeyState state = asd.Engine.Keyboard.GetKeyState(keys[i]);

                if (state == asd.KeyState.Free) // 前フレームと本フレームで非押下
                {
                    displayStr += (keystr + "キーを離しています。");
                }
                else if (state == asd.KeyState.Hold) // 前フレームと本フレームで押下
                {
                    displayStr += (keystr + "キーを押しています。");
                }
                else if (state == asd.KeyState.Release) // 前フレームで押下、本フレームで非押下
                {
                    displayStr += (keystr + "キーを離しました!");
                }
                else if (state == asd.KeyState.Push) // 前フレームで非押下、本フレームで押下
                {
                    displayStr += (keystr + "キーを押しました!");
                }

                displayStr += "\n";
            }

            // キー入力状態を示す文字列を更新する。
            keyStateText.Text = displayStr;

            // Altseedを更新する。
            asd.Engine.Update();

            Recorder.CaptureScreen("Keyboard_PuralKeys", 30, 60, 0.2f, 0.5f);
            Recorder.TakeScreenShot("Keyboard_PuralKeys", 30);
        }

        //Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
예제 #24
0
    public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("Keyboard_PuralKeys", 640, 480, new asd.EngineOption());

        var font = asd.Engine.Graphics.CreateDynamicFont(string.Empty, 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));

        // キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
        var keyStateText = new asd.TextObject2D();

        keyStateText.Position = new asd.Vector2DF(10, 10);
        keyStateText.Font     = font;
        asd.Engine.AddObject2D(keyStateText);

        // 入力チェックするキー一覧。(Z, X, C, V, B)
        List <asd.Keys> keys
            = new List <asd.Keys>()
            {
            asd.Keys.Z,
            asd.Keys.X,
            asd.Keys.C,
            asd.Keys.V,
            asd.Keys.B
            };

        //キーを文字列に変換するマップ。
        Dictionary <asd.Keys, string> keyToStr
            = new Dictionary <asd.Keys, string>()
            {
            { asd.Keys.Z, "Z" },
            { asd.Keys.X, "X" },
            { asd.Keys.C, "C" },
            { asd.Keys.V, "V" },
            { asd.Keys.B, "B" }
            };

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            string displayStr = string.Empty;

            //すべてのキーに対して入力状態を確認してから表示する。
            foreach (var key in keys)
            {
                var keyStr = keyToStr[key];

                // キーボードのZキーの入力状態を取得する。
                switch (asd.Engine.Keyboard.GetKeyState(key))
                {
                case asd.KeyState.Free:     // 前フレームと本フレームで非押下
                    displayStr += (keyStr + "キーを離しています。");
                    break;

                case asd.KeyState.Hold:     // 前フレームと本フレームで押下
                    displayStr += (keyStr + "キーを押しています。");
                    break;

                case asd.KeyState.Release:     // 前フレームで押下、本フレームで非押下
                    displayStr += (keyStr + "キーを離しました!");
                    break;

                case asd.KeyState.Push:     // 前フレームで非押下、本フレームで押下
                    displayStr += (keyStr + "キーを押しました!");
                    break;
                }

                displayStr += "\n";
            }

            // キー入力状態を示す文字列を更新する。
            keyStateText.Text = displayStr;

            // Altseedを更新する。
            asd.Engine.Update();

            Recorder.CaptureScreen("Keyboard_PuralKeys", 30, 60, 0.2f, 0.5f);
        }

        //Altseedの終了処理をする。
        asd.Engine.Terminate();
    }