gpt4 book ai didi

java - Eclipse 错误,平台游戏

转载 作者:行者123 更新时间:2023-11-30 03:30:41 25 4
gpt4 key购买 nike

我的代码有问题。我刚刚开始使用 Eclipse。目前,我正在使用 Java 开发一款平台游戏。我在使用 Homestuck 代码时遇到问题。它位于 public static void main(String[] args) 下面。谢谢大家的帮助!

错误:

Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1388)
at projectOne.<init>(projectOne.java:31)
at projectOne.main(projectOne.java:104)

代码:

 import java.awt.*; 
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;

public class projectOne extends JPanel
{
/**
*
*/
private static final long serialVersionUID = 1L;

GameEvents gameEvents = new GameEvents();
Timer gameTimer = new Timer(1, gameEvents);
int i = 0;
int horizontalposition = 500;
int verticalposition = 500;
BufferedImage Picture;
//Don't forget to declare your variables!


projectOne()
{
gameTimer.start();
this.addKeyListener(gameEvents);

try
{
Picture = ImageIO.read(getClass().getResource("Homestuck.gif"));
//The format for this is Picture = ImageIO.read(getClass().getResource("NameOfFile.typeoffile"));
}
catch (IOException e)
{
System.out.println("Pictures failed to load");
}
}

@Override
protected void paintComponent(Graphics g)
{
g.setColor(Color.blue);
g.fillRect(0,0,this.getWidth(), this.getHeight());
g.setColor(Color.red);
///g.drawImage(Picture, horizontalposition, verticalposition, 100, 150, null);
g.drawImage(Picture, 50, 100, 500, 600, null);

//Here's the format you must follow when drawing simple Java Graphics objects
//g.fillOval(horizontal location, vertical location, width, height)
}

public class GameEvents implements ActionListener, KeyListener
{

@Override
public void actionPerformed(ActionEvent arg0)
{
repaint();
}

@Override
public void keyPressed(KeyEvent key) //stuff inside here happens when a key is pressed
{
if(key.getKeyChar()=='d')
{
horizontalposition=horizontalposition+20;
}
if(key.getKeyChar()=='s')
{
verticalposition=verticalposition+20;
}
if(key.getKeyChar()=='w')
{
verticalposition=verticalposition-20;
}
if(key.getKeyChar()=='a')
{
horizontalposition=horizontalposition-20;
}
if(horizontalposition<0)
{
horizontalposition=0;
}
System.out.println(key.getKeyChar());
System.out.println('d');
}

@Override
public void keyReleased(KeyEvent arg0) {

}

@Override
public void keyTyped(KeyEvent arg0) {

}

}
public static void main(String[] args)
{
JFrame f = new JFrame("Java Graphics Example Project");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
projectOne p = new projectOne();
f.setSize(1500,700);
f.add(p);
f.setVisible(true);
p.requestFocusInWindow();
}

}

最佳答案

在这一行

Picture = ImageIO.read(getClass().getResource("Homestuck.gif"));

getResource 调用必须返回 null。我建议将其隔离为局部变量,以便更容易调试:

File imageFile = getClass().getResource("Homestuck.gif");
if (imageFile == null) {
//consider throwing an exception here
} else {
Picture = ImageIO.read(imageFile);
}

关于java - Eclipse 错误,平台游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29125055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com