2014-02-15 2 views
0

Я использую библиотеку игр Slick2D Java, и я хочу установить масштаб графического объекта, который передается методу рендеринга в моем игровом цикле. Я хотел бы сделать это вне метода render, так что мне нужно было бы только один раз вызвать метод setScale(). Я реализую свою игру как StateBasedGame, поэтому мне бы хотелось инициализировать мой графический объект в моем классе StateBasedGame. Где было бы подходящим местом для этого?Slick2D: Инициализация графического объекта до игрового цикла

ответ

1

В методе Init, где вы должны инициализировать свое изображение. Я могу расширить это, но ваш вопрос, похоже, подтверждает, что вы уже знаете, как масштабировать изображение.

EDIT: После перечитывания вопроса ответ будет заключаться в том, что вам нужно масштабировать его каждый раз, когда вы входите в метод рендеринга вашего объекта gamestate. Это требует, чтобы вы поместили graphics.scale (0.5f, 0.5f);

Это, как мне кажется, требуется, поскольку графический объект сбрасывает масштаб каждой игры, так что вы не получаете укомплектованный эффект, так как он вызывает метод визуализации сотни раз.

+0

Я попытался вызвать 'container.getGraphics(). Scale (0.5f, 0.5f);' в контейнере 'initStatesList (GameContainer container)', но это не имеет никакого эффекта. Я предполагаю, что объект Graphics, который передается в каждый GameState, создается каждый раз заново? Это то, о чем вы говорили, или у вас есть дополнительные предложения? – user2066880

+0

О, я неправильно прочитал ваш оригинальный вопрос. Я думал, вы просите сделать что-то с изображением, а не с графическим объектом haha ​​(немного устал). Что касается того, о чем вы просите, было бы неразумно это делать (читай: правильно обрабатывая одиночные игры), но то, что вы пытаетесь выполнить, должно быть в отредактированном ответе выше. Если вам нужна дополнительная помощь, отправьте код, и я буду рад помочь вам. Я сделал много работы с пятнами и хорошо знаю свой путь. – Samich

+0

Хорошо, я понимаю, спасибо за разъяснение. Тем не менее, при этом он имеет немного запаха кода для того, как я намереваюсь его использовать. Я использую метод 'graphics.scale()', чтобы соответствовать игре с любым разрешением. Если мне нужно называть это каждый рендер, это означает, что я должен поместить одну и ту же строку кода в каждый метод рендеринга в каждом состоянии. Есть ли лучший способ решить эту проблему? – user2066880

Смежные вопросы