Exemplo n.º 1
0
        public static void Init()
        {
            s_sprite = new Sprite(s_tmpBmp);
            s_totalSize = new Vector2f(s_sprite.Bitmap.Size.Width, s_sprite.Bitmap.Size.Height)/Tile.Size;

            Vector2f worldPosition = new Vector2f(0,0);
            Vector2f pixelPosition = new Vector2f(0,0);
            Vector2f previousPixelPosition = new Vector2f(0,0);
            Vector2f pixelSize = new Vector2f(0,0);
            Vector2f worldSize = new Vector2f(0,0);
            foreach (char character in characters) {
                previousPixelPosition = pixelPosition.Clone();
                pixelPosition = RenderCharacter (character, pixelPosition, out pixelSize);
                if (pixelPosition.X >= s_sprite.Bitmap.Size.Width) {
                    pixelPosition.Y += pixelSize.Y;
                    pixelPosition.X = 0;
                    previousPixelPosition = pixelPosition.Clone();
                    pixelPosition = RenderCharacter(character, pixelPosition, out pixelSize);
                }
                worldSize = pixelSize / Tile.Size;
                worldPosition = previousPixelPosition / Tile.Size;
                s_characters[character] = new Character() {
                    Size = worldSize.Clone(),
                    Position = worldPosition.Clone(),
                    Char = character
                };
            }
            s_sprite.ReloadBitmap();
        }