Skip to content

SpriteTexture

自 2.2.1

SpriteTextureassets/ 目录中渲染一张 PNG 图像文件。它支持:

  • 九宫格缩放 —— 通过 setBorder(...) 实现,四个角保持清晰,中心部分拉伸。
  • 精灵区域 —— 通过 setSprite(x, y, width, height) 在源图像中选择区域。
  • 环绕模式 —— 用于平铺或镜像中心区域。
  • 颜色着色 —— 通过 setColor(int) 实现。

注册名:sprite_texture

INFO

继承自 TransformTexture —— 支持 rotate()scale()transform()


用法

java
// 整张图像,拉伸
IGuiTexture icon = SpriteTexture.of("mymod:textures/gui/icon.png");

// 九宫格面板:四边各 4 像素边框
IGuiTexture panel = SpriteTexture.of("mymod:textures/gui/panel.png")
    .setBorder(4);

// 九宫格,四边边框不同
IGuiTexture fancy = SpriteTexture.of("mymod:textures/gui/fancy.png")
    .setBorder(4, 4, 4, 4); // left, top, right, bottom

// 精灵表中的子区域(x、y、width、height 以像素为单位)
IGuiTexture frame = SpriteTexture.of("mymod:textures/gui/sheet.png")
    .setSprite(0, 0, 16, 16);

// 平铺背景
IGuiTexture tile = SpriteTexture.of("mymod:textures/gui/tile.png")
    .setWrapMode(SpriteTexture.WrapMode.REPEAT);

// 着色
IGuiTexture tinted = SpriteTexture.of("mymod:textures/gui/icon.png")
    .setColor(0xFF44AAFF);

LSS

css
/* 简单图像 */
background: sprite(mymod:textures/gui/icon.png);

/* 带精灵区域(x、y、width、height) */
background: sprite(mymod:textures/gui/sheet.png, 0, 0, 16, 16);

/* 带边框(left、top、right、bottom) */
background: sprite(mymod:textures/gui/panel.png, 0, 0, 64, 64, 4, 4, 4, 4);

/* 带颜色着色 */
background: sprite(mymod:textures/gui/icon.png, 0, 0, 16, 16, 0, 0, 0, 0, #FF44AAFF);

环绕模式

描述
CLAMP中心区域拉伸以填充可用区域。默认值。
REPEAT中心区域重复(平铺)。
MIRRORED_REPEAT中心区域以交替镜像的方式平铺。

环绕模式仅适用于九宫格精灵的中心区域。角和边缘始终为拉伸。


字段

名称类型描述
imageLocationResourceLocationPNG 文件的路径。
spritePositionPosition源区域的左上角像素。默认值:(0, 0)
spriteSizeSize源区域的宽 × 高(像素)。(0, 0) 表示整张图像。
borderLTPosition左侧 / 顶部九宫格边框(像素)。
borderRBPosition右侧 / 底部九宫格边框(像素)。
colorintARGB 着色颜色。默认值:0xFFFFFFFF(无着色)。
wrapModeWrapMode中心区域环绕模式。默认值:CLAMP

方法

方法返回描述
SpriteTexture.of(String)SpriteTexture通过资源路径字符串的静态工厂方法。
SpriteTexture.of(ResourceLocation)SpriteTexture通过 ResourceLocation 的静态工厂方法。
setImageLocation(ResourceLocation)SpriteTexture更改源图像(清除大小缓存)。
setSprite(int x, int y, int w, int h)SpriteTexture设置图像内的精灵区域。
setBorder(int left, int top, int right, int bottom)SpriteTexture设置每侧的九宫格边框。
setBorder(int)SpriteTexture将四边边框设为相同值。
setColor(int)SpriteTexture设置 ARGB 着色颜色。
setWrapMode(WrapMode)SpriteTexture设置中心区域环绕模式。
getImageSize()Size返回加载图像的原始大小(仅客户端)。
copy()SpriteTexture返回深拷贝。

Released under the MIT License.