2014-02-11 3 views
3

Самое странное, что происходит, и я не могу понять это. Я делаю StateBasedGame, и в одном из BasicGameStates я пытаюсь нарисовать изображение. Тем не менее, он выглядит белым. Код:Рисование изображения Не работает Slick2d

@Override 
    public void render(GameContainer arg0, StateBasedGame arg1, 
      Graphics g) throws SlickException { 
     // TODO Auto-generated method stub 
     g.setBackground(Color.blue); 
     Image image = new Image("res/Sniper Scope (Border).png"); 
     g.drawImage(image, 230,100); 
    } 

Казалось бы, найти образ (он не откажет), но все, что приходит это:

Любая помощь будет принята с благодарностью.

+0

Это неправильное использование метода визуализации, используемого в slick. Правило большого пальца состоит в том, чтобы никогда не объявлять/инициализировать переменные (особенно изображения, так как не будет времени для обработки изображения) или сделать какую-либо тяжелую логику в потоке рендеринга. То, как будет работать ваша игра, будет инициализировать и загружать этот образ, каждый галочек в игре, который будет примерно вокруг любого FPS, который у вас есть, и будет слишком тяжелым для обработки. – Samich

ответ

1

Переместите инициализацию/объявление изображения в метод init. Если вы хотите вызвать изображение в области визуализации, вы должны установить образ как глобальную переменную, а затем инициализировать его в методе Init.

Редактировать: также, классы изображений в slick имеют доступные (x, y) методы! Поэтому нет необходимости в g.drawImage(). Пример: Изображение img = Новое изображение («res/Image.png»);

Render method: img.draw (0, 0);

+0

Это работает! Большое спасибо @Samich! –

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