0

我正在和一个朋友一起做一个小游戏,我们遇到了一个非常烦人的精灵表和纹理问题......现在我们只是使用 Slick2D 的纹理加载器,我们甚至尝试了他们的 SpriteSheet,但没有运气。我们真正需要的只是一个自定义的纹理加载器,或者你可以调用它来加载一个大纹理,将其分解为更小的纹理,并将新的更小的纹理保存到一个数组中。如果您知道一个可以提供帮助的网站,或者只是粘贴您的代码,那就太好了,谢谢!

4

1 回答 1

0

在我的一个项目中,我对下面的代码很幸运。我碰巧将纹理保存在单个文件中,但它似乎没有问题。

如果你想加载一张大图,你可以用同样的方法,然后用Image 类的subImage 方法把它切成小块。请注意,文档中提到,任何子图像“保留对 [原始] 图像数据的引用,因此如果 [在父图像中] 发生任何变化,它也会影响子图像。”

import org.newdawn.slick.Image;

...whatever code you've got...

/** Loads the image resources needed for the game.
*
* @throws SlickException if there is a problem loading one of the images
*/
public void loadImageResources() throws SlickException {
  images = new Image[6];

  images[0] = new Image("images/controls/play.png");
  images[1] = new Image("images/controls/pause.png");
  images[2] = new Image("images/tiles/stone.png");
  images[3] = new Image("images/peds/ped.png");
  images[4] = new Image("images/peds/ped_add.png");
  images[5] = new Image("images/peds/ped_remove.png");
}
于 2011-09-14T02:15:14.103 回答