Example #1
0
        public Atlas(string png, int z_order, float scale_coefficient_ = 1)
        {
            textures[0] = Textures.loadTexture(png, z_order);
            texture     = textures[0];

            active_texture = 0;
            max_textures   = 1;

            texture.z_order = z_order;
            for (int i = 0; i < max_textures; ++i)
            {
                textures[i].z_order = z_order;
            }

            Texture2D t = texture.texture();

            scale_coefficient = scale_coefficient_;
            n_sprites         = 1;

            sprites = new AtlasSprite[1];

            sprites[0].bounds          = new Bounds(new Vector2(0.0f, 1.0f), new Vector2(1.0f, 0.0f));
            sprites[0].bounds.uv_index = 0;
            sprites[0].center          = new Vector2(0.5f, 0.5f);
            sprites[0].size            = new Vector2(t.width, t.height);
        }
Example #2
0
        public Atlas(string png, Vector2 sprite_size, int z_order)
        {
            textures[0] = Textures.loadTexture(png, z_order);
            texture     = textures[0];

            active_texture = 0;
            max_textures   = 1;

            texture.z_order = z_order;
            for (int n = 0; n < max_textures; ++n)
            {
                textures[n].z_order = z_order;
            }

            Texture2D t = texture.texture();

            Vector2 dimensions = new Vector2(t.width / sprite_size.x, t.height / sprite_size.y);

            n_sprites = (int)System.Math.Ceiling(dimensions.x) * (int)System.Math.Ceiling(dimensions.y);
            sprites   = new AtlasSprite[n_sprites];

            Vector2 size = new Vector2(1.0f / dimensions.x, 1.0f / dimensions.y);

            int i = 0;

            for (int y = 0; y < dimensions.y; ++y)
            {
                for (int x = 0; x < dimensions.x; ++x)
                {
                    sprites[i].center = new Vector2(0.5f, 0.5f);
                    sprites[i].size   = sprite_size;
                    sprites[i].bounds = new Bounds(new Vector2(size.x * x * 1.0f, 1.0f - size.y * y * 1.0f),
                                                   new Vector2(size.x * ((x + 1) * 1.0f), 1.0f - size.y * ((y + 1) * 1.0f)));
                    sprites[i].bounds.uv_index = i;
                    i++;
                }
            }
        }