drawImage () для файлов .png не работает в апплете Java? - PullRequest
0 голосов
/ 09 марта 2009

Я сделал эту игру pacman, используя апплет. Когда апплет завершает загрузку, он должен отобразить созданное мной изображение «меню пуска», которое говорит «Двойной щелчок, чтобы запустить игру» и т. Д. Графическое изображение займет весь апплет 400x400. Вот код:

public void paint(Graphics g)
{
    if (! isRunning)
    {
        switch (result)
        {
            case 0:
                showStartScreen(g);
            break;

            case 1:
                showWonScreen(g);
            break;

            case -1:
                showLostScreen(g);
            break;
        }
        return;
    }
      //Code for rendering other stuff if game is here
}

showStartScreen:

public void showStartScreen(Graphics g)
{
    Image intro=img.getImg("pacman-intro.png");
    g.drawImage(intro, 0, 0, this);

}

Это прекрасно работает, когда я запускаю это локально на Eclipse, но в веб-браузере, когда апплет загружен, я просто вижу пустое поле, где ранее была анимация загрузки java. Удивительно, но если я дважды щелкну случайно, где должен быть апплет, игра запускается и работает как обычно. Так что это заставляет меня думать, что проблема заключается только в рисовании файлов .png с использованием drawImage.

То же самое происходит, когда вы выигрываете или проигрываете игру, она просто зависает, а не рисует нужную графику.

Вы можете увидеть это здесь (вы можете использовать клавиши со стрелками для управления)

P.S Я здесь использую двойную буферизацию.

Есть мысли ..?

EDIT: код для класса ImgHelper, который используется для загрузки img:

import java.awt.Image;
import java.net.URL;

import javax.swing.ImageIcon;

public class ImgHelper
{
    public Image getImg(String file)
    {
            //Engine is the name of the base applet class
        URL url=Engine.class.getClassLoader().getResource("assets/" + file);
        return new ImageIcon(url).getImage();

    }


}

Ответы [ 2 ]

4 голосов
/ 09 марта 2009

Ах, я проверил содержимое вашего фляги.

Заменить "pacman-intro.png" на "pacman-intro.PNG". Он чувствителен к регистру.

1 голос
/ 09 марта 2009

Находятся ли png в правильном каталоге? Является "." в пути env-переменная на сервере?

Попробуйте "./pacman-intro.png", т.е.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...