0

キャラクターが 75x75 のオブジェクトで、画面上を動き回るゲームを作ろうとしています。ただし、コードを実行すると、次のエラーが表示されます。

java.lang.IllegalArgumentException: Invalid display mode
at sun.awt.Win32GraphicsDevice.setDisplayMode(Unknown Source)
at sylvyrfysh.Screen.setFullScreen(Screen.java:17)
at sylvyrfysh.ImageDrawer.run(ImageDrawer.java:26)
at sylvyrfysh.ImageDrawer.main(ImageDrawer.java:17)
at sylvyrfysh.Main.main(Main.java:7)

同じ DisplayMode 引数を使用して別のプロジェクトを作成したため、何が原因であるかはわかりませんが、正常に機能しました。パッケージsylvyrfysh;

import game.infos.Information;
import java.awt.*;
import javax.swing.*;

public class ImageDrawer extends JFrame{
    /**
     * 
     */
    private static final long serialVersionUID = -4278324581016693552L;
    public static void main() throws InterruptedException{
        DisplayMode dm=new DisplayMode(Information.sX,Information.sY,16,DisplayMode.REFRESH_RATE_UNKNOWN);
        ImageDrawer i=new ImageDrawer();
        i.run(dm);
    }
    private void loader(){
        bg=new ImageIcon("src/sylvyrfysh/maze_icon.png").getImage();
        chara=new ImageIcon("src/sylvyrfysh/char.png").getImage();
    }
    private void run(DisplayMode dm){
        System.out.println("HI");
        loader();
        s=new Screen();
        s.setFullScreen(dm,this);//error here
        repaint();
        while(EHandler.run){
            if(rp){
                repaint();
                rp=false;
            }
        }
    }
    public void paint(Graphics g){
        g.drawImage(bg,0,0,null);
        g.drawImage(bg,360,0,null);
        g.drawImage(bg,720,0,null);
        g.drawImage(bg,0,480,null);
        g.drawImage(bg,360,480,null);
        g.drawImage(bg,720,480,null);
        g.drawImage(chara,imgX,imgX,null);
    }
    private Image bg,chara;
    Screen s;
    public static int imgX=0;
    public static int imgY=525;
    public static Boolean rp=false;
}

どんな助けでも大歓迎です。

4

1 に答える 1

0

グラフィックス デバイスの表示モードを変更する機能は、プラットフォームと構成に依存し、常に利用できるとは限りません。GraphicsDevice.isDisplayChangeSupported()グラフィックス デバイスの表示モードを変更する前に確認するために使用する必要があります。

他のいくつかの重要な提案がここでうまく行われています。

于 2013-10-25T23:48:41.700 に答える