예제 #1
0
        public Menu()
        {
            Shader plainShader = new Shader.Plain(new Color8(0, 0, 0), new Color8(0, 0, 0), ' ');
            Image  plainImage  = new Image.Rectangle(plainShader, new Vector2d16(600, 300), 0);

            Shader logoShader = new Shader.TextureSymbol(ResourceLoader.LoadResource <Atlas16>(@"Textures\mainMenu.bms"), new Vector2d16(0, 0), new Vector2d16(51, 5));
            Image  logo       = new Image.Rectangle(logoShader, new Vector2d16(51, 5), 1);

            //Image mainMenuImage = new Image.Rectangle(mainMenu, new Vector2d16(30, 15), 126);

            Image team = new Image.Rectangle(new Shader.RichText("Made by Code0", new Color8(60, 60, 60)), new Vector2d16(14, 1), 200);

            Shader cursorShader = new Shader.Plain(new Color8(0, 0, 255), Color8.GetNull(), '>');
            Image  cursor       = new Image.Rectangle(cursorShader, new Vector2d16(1, 1), 127);

            Shape circle = new Shape.Circle(1);

            var tmp = new GameObject[]
            {
                new VisualObject(new Vector2d16(-100, -50), plainImage),

                new VisualObject(new Vector2d16(Config.screenWidth / 2 - 25, Config.screenHeight / 5), logo),
                new VisualObject(new Vector2d16(Config.screenWidth / 2 - 8, Config.screenHeight / 5 + 8), newGame),
                new VisualObject(new Vector2d16(Config.screenWidth / 2 - 4, Config.screenHeight / 5 + 10), loadGame),
                new VisualObject(new Vector2d16(Config.screenWidth / 2 - 4, Config.screenHeight / 5 + 12), test),
                new VisualObject(new Vector2d16(Config.screenWidth / 2 - 5, Config.screenHeight / 5 + 14), mapEditor),
                new VisualObject(new Vector2d16(Config.screenWidth / 2 - 4, Config.screenHeight / 5 + 16), settings),
                new VisualObject(new Vector2d16(Config.screenWidth / 2 - 3, Config.screenHeight / 5 + 18), credits),
                new VisualObject(new Vector2d16(Config.screenWidth / 2 - 2, Config.screenHeight / 5 + 20), exit),
                new VisualObject(new Vector2d16(Config.screenWidth / 2 - 7, Config.screenHeight / 5 * 4), team)
            };

            map  = new Map("Test", Renderer.Dimensions, 0, tmp);
            hero = new KinematicObject(new Vector2d16(Config.screenWidth / 2 - 10, Config.screenHeight / 5 + 8), circle, cursor);
        }
예제 #2
0
        public Credits()
        {
            Shader plainShader = new Shader.Plain(new Color8(0, 0, 0), new Color8(0, 0, 0), ' ');
            Image  plainImage  = new Image.Rectangle(plainShader, new Vector2d16(600, 300), 0);

            Shader logoShader = new Shader.TextureSymbol(ResourceLoader.LoadResource <Atlas16>(@"Textures\mainMenu.bms"), new Vector2d16(0, 12), new Vector2d16(53, 16));
            Image  logo       = new Image.Rectangle(logoShader, new Vector2d16(54, 4), 1);


            Shader cursorShader = new Shader.Plain(new Color8(0, 0, 255), Color8.GetNull(), ' ');
            Image  cursor       = new Image.Rectangle(cursorShader, new Vector2d16(1, 1), 127);

            Shape circle = new Shape.Circle(1);

            var tmp = new GameObject[]
            {
                new VisualObject(new Vector2d16(-100, -50), plainImage),

                new VisualObject(new Vector2d16(Config.screenWidth / 2 - 25, Config.screenHeight / 5), logo),
                new VisualObject(new Vector2d16(Config.screenWidth / 2 - 28, Config.screenHeight / 2.5), credits)
            };

            map  = new Map("Test", Renderer.Dimensions, 0, tmp);
            hero = new KinematicObject(new Vector2d16(0, 0), circle, cursor);
        }
예제 #3
0
 public override Fragment8 Compute(Vector2d16 current, Vector2d16 start, Vector2d16 end)
 {
     if (text.Length <= current._2 || text[current._2].Length <= current._1)
     {
         return(Fragment8.GetNull());
     }
     return(new Fragment8(new Color8(255, 255, 255), Color8.GetNull(), text[current._2][current._1]));
 }
예제 #4
0
        public override Fragment8 Compute(Vector2d16 current, Vector2d16 start, Vector2d16 end)
        {
            char ch = (char)atlas.GetData(this.start - start + current);

            if (ch == 0)
            {
                return(Fragment8.GetNull());
            }
            return(new Fragment8(new Color8(255, 255, 255), Color8.GetNull(), ch));
        }
예제 #5
0
        public override Fragment8 Compute(Vector2d16 current, Vector2d16 start, Vector2d16 end)
        {
            if (text.Length <= current._2 || text[current._2].Length <= current._1)
            {
                return(Fragment8.GetNull());
            }
            switch (text[current._2][current._1])
            {
            case '#':     //Bold
                return(new Fragment8(foreground, Color8.GetNull(), (char)0xDB80));

            case '|':     //Faint
                return(new Fragment8(foreground, Color8.GetNull(), (char)0xDB81));

            case '/':     //Italic
                return(new Fragment8(foreground, Color8.GetNull(), (char)0xDB82));

            case '_':     //Underlined
                return(new Fragment8(foreground, Color8.GetNull(), (char)0xDB83));

            case '^':     //Blink
                return(new Fragment8(foreground, Color8.GetNull(), (char)0xDB84));

            case '%':     //Crossed-out
                return(new Fragment8(foreground, Color8.GetNull(), (char)0xDB85));

            case '~':     //Video inverse
                return(new Fragment8(foreground, Color8.GetNull(), (char)0xDB86));

            case '@':     //Fraktur
                return(new Fragment8(foreground, Color8.GetNull(), (char)0xDB87));

            default:
                return(new Fragment8(foreground, Color8.GetNull(), text[current._2][current._1]));
            }
        }