示例#1
0
        public Background(Renderer r, Map m)
        {
            _r = r;
            _hscroll = 0.0f;
            _vscroll = 0.0f;
            _width = m.Width;
            _height = m.Height;

            _blocks = m.Blocks;
            _tilemapNames = m.TilemapNames;

            _material = r.GetMaterial("default");
        }
示例#2
0
文件: Line.cs 项目: cadahl/defense
        public override void BeginDraw(Renderer r)
        {
            GL.Disable (EnableCap.Blend);
            GL.Disable (EnableCap.Texture2D);

            if(_material == null)
            {
                _material = r.GetMaterial("line");
            }

            GL.Color4(255,255,255,255);
            _material.Bind();
        }
示例#3
0
        public Background(Renderer r, string tilemapName, int width, int height)
        {
            _r = r;
            _hscroll = 0.0f;
            _vscroll = 0.0f;
            _width = width;
            _height = height;

            _blocks = new List<MapBlock>(Enumerable.Repeat(MapBlock.Empty, width*height));
            _tilemapNames = new List<string>();
            _tilemapNames.Add(tilemapName);

            _material = r.GetMaterial("default");
        }
示例#4
0
文件: Circle.cs 项目: cadahl/defense
        public override void BeginDraw(Renderer r)
        {
            _material = r.GetMaterial("circle");

            GL.Enable(EnableCap.Blend);
            GL.Disable(EnableCap.Texture2D);
            GL.BindTexture(TextureTarget.Texture2D, 0);
            _material.Bind();
            float cx = X - r.Backgrounds[0].HScroll;
            float cy = Y - r.Backgrounds[0].VScroll;
            Vector3 p = new Vector3(cx,cy,Radius);
            _material.Uniform3("circle", ref p);

            Vector2 le = new Vector2(_thickness/2.0f,-_thickness/2.0f-_aawidth);
            Vector2 he = new Vector2(_thickness/2.0f+_aawidth,-_thickness/2.0f);
            _material.Uniform2("lowedge", ref le);
            _material.Uniform2("highedge", ref he);
            _material.Color4("color", ref Color);
        }
示例#5
0
文件: Text.cs 项目: cadahl/defense
        public TextLine(Renderer r, int x, int y, int priority)
            : base(0, priority)
        {
            if(CashFont == null)
            {
                CashFont = new TextFont();
                CashFont.Template = new SpriteTemplate
                {
                    TilemapName = "units",
                    Rectangle = new Rectangle(240, 384, 16, 21),
                    Centered = false
                };

                byte i = 0;
                CashFont.Table = new Dictionary<char, byte[]>()
                {
                    { '$', new byte[] { i++, 14 } },
                    { '0', new byte[] { i++, 13 } },
                    { '1', new byte[] { i++, 12 } },
                    { '2', new byte[] { i++, 12 } },
                    { '3', new byte[] { i++, 13 } },
                    { '4', new byte[] { i++, 13 } },
                    { '5', new byte[] { i++, 12 } },
                    { '6', new byte[] { i++, 13 } },
                    { '7', new byte[] { i++, 13 } },
                    { '8', new byte[] { i++, 12 } },
                    { '9', new byte[] { i++, 13 } }
                };
            }

            if(NormalFont == null)
            {
                NormalFont = new TextFont();
                NormalFont.Template = new SpriteTemplate
                {
                    TilemapName = "units",
                    Rectangle = new Rectangle(0, 464, 16, 16),
                    Centered = false
                };

                byte i = 0;
                NormalFont.Table = new Dictionary<char, byte[]>()
                {
                    { 'a', new byte[] { i++, 5 } },
                    { 'b', new byte[] { i++, 6 } },
                    { 'c', new byte[] { i++, 5 } },
                    { 'd', new byte[] { i++, 6 } },
                    { 'e', new byte[] { i++, 6 } },
                    { 'f', new byte[] { i++, 5 } },
                    { 'g', new byte[] { i++, 6 } },
                    { 'h', new byte[] { i++, 6 } },
                    { 'i', new byte[] { i++, 2 } },
                    { 'j', new byte[] { i++, 3 } },
                    { 'k', new byte[] { i++, 6 } },
                    { 'l', new byte[] { i++, 2 } },
                    { 'm', new byte[] { i++, 11 } },
                    { 'n', new byte[] { i++, 6 } },
                    { 'o', new byte[] { i++, 6 } },
                    { 'p', new byte[] { i++, 6 } },
                    { 'q', new byte[] { i++, 6 } },
                    { 'r', new byte[] { i++, 4 } },
                    { 's', new byte[] { i++, 5 } },
                    { 't', new byte[] { i++, 5 } },
                    { 'u', new byte[] { i++, 6 } },
                    { 'v', new byte[] { i++, 7 } },
                    { 'w', new byte[] { i++, 10 } },
                    { 'x', new byte[] { i++, 7 } },
                    { 'y', new byte[] { i++, 7 } },
                    { 'z', new byte[] { i++, 5 } },
                    { 'A', new byte[] { i++, 9 } },
                    { 'B', new byte[] { i++, 7 } },
                    { 'C', new byte[] { i++, 7 } },
                    { 'D', new byte[] { i++, 8 } },
                    { 'E', new byte[] { i++, 5 } },
                    { 'F', new byte[] { i++, 6 } },
                    { 'G', new byte[] { i++, 8 } },
                    { 'H', new byte[] { i++, 8 } },
                    { 'I', new byte[] { i++, 5 } },
                    { 'J', new byte[] { i++, 5 } },
                    { 'K', new byte[] { i++, 7 } },
                    { 'L', new byte[] { i++, 6 } },
                    { 'M', new byte[] { i++, 10 } },
                    { 'N', new byte[] { i++, 8 } },
                    { 'O', new byte[] { i++, 9 } },
                    { 'P', new byte[] { i++, 6 } },
                    { 'Q', new byte[] { i++, 9 } },
                    { 'R', new byte[] { i++, 6 } },
                    { 'S', new byte[] { i++, 5 } },
                    { 'T', new byte[] { i++, 7 } },
                    { 'U', new byte[] { i++, 8 } },
                    { 'V', new byte[] { i++, 8 } },
                    { 'W', new byte[] { i++, 13 } },
                    { 'X', new byte[] { i++, 8 } },
                    { 'Y', new byte[] { i++, 7 } },
                    { 'Z', new byte[] { i++, 6 } },
                    { '0', new byte[] { i++, 6 } },
                    { '1', new byte[] { i++, 4 } },
                    { '2', new byte[] { i++, 7 } },
                    { '3', new byte[] { i++, 6 } },
                    { '4', new byte[] { i++, 7 } },
                    { '5', new byte[] { i++, 6 } },
                    { '6', new byte[] { i++, 6 } },
                    { '7', new byte[] { i++, 6 } },
                    { '8', new byte[] { i++, 6 } },
                    { '9', new byte[] { i++, 6 } },
                    { ',', new byte[] { i++, 2 } },
                    { '.', new byte[] { i++, 2 } },
                    { ':', new byte[] { i++, 2 } },
                    { '\"', new byte[] { i++, 5 } },
                    { '/', new byte[] { i++, 8 } },
                    { '_', new byte[] { i++, 6 } },
                    { '-', new byte[] { i++, 4 } },
                    { '!', new byte[] { i++, 2 } },
                    { '?', new byte[] { i++, 5 } },
                    { ';', new byte[] { i++, 2 } },
                    { '%', new byte[] { i++, 10 } },
                    { '$', new byte[] { i++, 6 } },
                    { '&', new byte[] { i++, 9 } },
                    { '#', new byte[] { i++, 0 } },
                    { '@', new byte[] { i++, 0 } },
                    { '(', new byte[] { i++, 0 } },
                    { ')', new byte[] { i++, 0 } },
                    { '[', new byte[] { i++, 0 } },
                    { ']', new byte[] { i++, 0 } },
                    { '{', new byte[] { i++, 0 } },
                    { '}', new byte[] { i++, 0 } },
                    { '=', new byte[] { i++, 0 } },
                    { '+', new byte[] { i++, 0 } },
                    { '\\', new byte[] { i++, 0 } },
                    { '\'', new byte[] { i++, 0 } },
                    { ' ', new byte[] { i++, 3 } },
                };
            }

            X = x;
            Y = y;
            Font = NormalFont;

            _material = r.GetMaterial("default");
        }
示例#6
0
文件: Sprite.cs 项目: cadahl/defense
        public override void BeginDraw(Renderer r)
        {
            Tilemap tilemap;

            if(!r.Tilemaps.TryGetValue(Template.TilemapName, out tilemap))
            {
                r.Tilemaps[Template.TilemapName] = tilemap = new Tilemap (Template.TilemapName);
            }

            GL.BindTexture (TextureTarget.Texture2D, tilemap.Texture);

            Flags type = _flags & Drawable.Flags.TypeMask;

            if(Drawable.Flags.TypeNoBlend == type)
            {
                GL.Disable (EnableCap.Blend);
            }
            else
            {
                GL.Enable (EnableCap.Blend);
                GL.BlendFunc (BlendingFactorSrc.One, BlendingFactorDest.OneMinusSrcAlpha);
            }

            if(_material == null)
            {
                _material = r.GetMaterial("sprite");
            }

            _material.Bind();
        }
示例#7
0
文件: Panel.cs 项目: cadahl/defense
        public override void BeginDraw(Renderer r)
        {
            Tilemap tilemap = r.Tilemaps["units"];

            if(_material == null)
            {
                _material = r.GetMaterial("default");

                _psx = tilemap.PixelStepX;
                _psy = tilemap.PixelStepY;
                _material.SetTilemap("colortexture",tilemap);
            }

            GL.Enable(EnableCap.Blend);
            GL.Enable(EnableCap.Texture2D);
            GL.BindTexture(TextureTarget.Texture2D, tilemap.Texture);
            _material.Bind();
        }