2013-10-25 3 views
0

Я пытаюсь создать игру, в которой персонаж является объектом 75x75, и он перемещается по экрану. Тем не менее, когда я запускаю мой код, я получаю ошибку:Keyevent getID вызывает ошибку

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; 
} 

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

+0

Какова конкретная причина использования режима отображения? Это для достижения полноэкранного окна? – Sage

ответ

0

Возможность изменения режима отображения графического устройства зависит от платформы и конфигурации и может не всегда быть доступной. GraphicsDevice.isDisplayChangeSupported() следует использовать для проверки перед изменением режима отображения на графическом устройстве.

Некоторые другие важные предложения сделаны here красиво.

+0

Прежде чем установить полноэкранный режим, я проверю, поддерживается ли изменение. – johnnic431

+0

этот ответ должен быть комментарий, я думаю. Мой плохой :( – Sage

+0

Оказывается, мой монитор может делать 800x600, но не 750x600. Спасибо в любом случае. – johnnic431

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