Пользовательская текстура Java LWJGL

Я работаю над небольшой игрой с другом, и мы столкнулись с очень неприятной проблемой с листами спрайтов и текстурами... Прямо сейчас мы просто используем загрузчик текстур Slick2D и даже пробовали их SpriteSheet, но безуспешно. Что нам действительно нужно, так это просто пользовательский загрузчик текстур или как бы вы его ни называли, чтобы загрузить большую текстуру, разбить ее на более мелкие текстуры и сохранить новые более мелкие текстуры, возможно, в массив. Если вы знаете сайт, который может помочь, или просто вставьте свой код, это было бы здорово, спасибо!


person Conrad Mearns    schedule 14.09.2011    source источник


Ответы (1)


Мне повезло с приведенным ниже кодом в одной из мои проекты. Я храню текстуры в отдельных файлах, но, похоже, это работает без проблем.

Если вы хотите загрузить одно большое изображение, вы можете сделать это таким же образом, а затем разбить его на части с помощью метод 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");
}
person jefflunt    schedule 14.09.2011
comment
Сладкий! но один вопрос, как мне преобразовать изображения в текстуры для OPenGL? - person Conrad Mearns; 15.09.2011
comment
Ах, хорошо, я не могу вам помочь, но если вы используете Slick2D, вам не нужно трогать OpenGL - Slick2D сделает это за вас. Есть ли конкретная причина, по которой вы копаетесь в OpenGL? Если да, то является ли Slick2D подходящей библиотекой для вас (т. е. вы пишете всю свою игру в Slick2D)? - person jefflunt; 15.09.2011
comment
Да, в настоящее время я использую Slick2D для их готовых текстур и загрузчиков текстур, в конце концов я хотел, чтобы мой код работал только на lwjgl, я немного новичок в этом, поэтому я следовал их руководству по загрузке изображений на дисплей, и они сказал использовать Slick2D для этого, что я и сделал, но наличие двух источников немного ограничивает ваши возможности - person Conrad Mearns; 15.09.2011