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); }
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++; } } }