我最近一直在开发这个Java游戏。我试图用音频剪辑添加音乐,但它不起作用,所以我取出了主目录中的代码并删除了主目录,因为我不再需要它了。所有的代码在我实现音乐之前都是一样的,但现在这个消息弹出了,不让我运行我的游戏:
错误:在类中找不到主方法com.illuminations.co.GoNerdGo.Enties.Obtacles,请定义main方法为:public static void main(String[]args)
当我试着把主杆放回时,它根本就跑不动!
如果有人能帮助我那就太好了!
这是我的代码:
Bully bully = new Bully();
Nerd nerd = new Nerd();
static BufferedImage[] sprites;
public static float x, y, velX = 5.5f, velY = 5.5f;
public static int whatObstacle = 5;
public static int basketBall = 6;
public static int lava = 2;
public static int trash = 1;
public static boolean trashOpen = false;
public Rectangle getBounds() {
return null;
}
public Obstacles() {
int width = 100;
int height = 100;
int columns = 2;
int rows = 2;
BufferedImage spriteSheet = null;
try {
spriteSheet = ImageIO.read(new File(
"res/Images/ObstacleSpriteSheet.png"));
} catch (IOException e) {
e.printStackTrace();
}
sprites = new BufferedImage[rows * columns];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
sprites[(i * columns) + j] = spriteSheet.getSubimage(i * width,
j * height, width, height);
}
}
}
public void tick() {
if (whatObstacle >= basketBall && Game.gos == null) {
x += velX;
y += velY;
}
if (x <= 0 || x >= 800 - 35) {
velX *= -1;
}
if (y <= 425 || y >= 600 - 35) {
velY *= -1;
}
}
public void render(Graphics g) {
if (whatObstacle >= basketBall) {
// Displaying basketball
g.drawImage(sprites[3], (int) x, (int) y, null);
Rectangle basketballRect = new Rectangle((int) x, (int) y, 35, 35);
if (nerd.getFeetBounds().intersects(basketballRect)) {
Game.setOverGameState(Game.GameOverlayState.BullyWins);
}
if (bully.getFeetBounds().intersects(basketballRect)) {
Game.setOverGameState(Game.GameOverlayState.NerdWins);
}
// Displaying lava pool
} else if (whatObstacle >= lava) {
g.drawImage(sprites[2], (int) x, (int) y, null);
Rectangle lavaRect = new Rectangle((int) x + 5, (int) y + 7, 80, 19);
if (nerd.getFeetBounds().intersects(lavaRect)) {
Game.setOverGameState(Game.GameOverlayState.BullyWins);
}
if (bully.getFeetBounds().intersects(lavaRect)) {
Game.setOverGameState(Game.GameOverlayState.NerdWins);
}
// Displaying trash can
} else if (whatObstacle == trash) {
if (trashOpen) {
g.drawImage(sprites[1], (int) x, (int) y, null);
} else {
g.drawImage(sprites[0], (int) x, (int) y, null);
}
Rectangle trashRect = new Rectangle((int) x, (int) y, 60, 97);
if (bully.getBounds().intersects(trashRect)) {
Game.setOverGameState(Game.GameOverlayState.BullyWins);
Obstacles.trashOpen = true;
}
}
}
在类中插入一个主方法-public static void main(String[] args)
!当您运行一个Java程序时,输出仅为该方法中的输出。所以你总是需要它!
从设置应用程序的入口点,
如果您有一个绑定在JAR文件中的应用程序,那么您需要某种方式来指示JAR文件中哪个类是您的应用程序的入口点。您在清单中使用
Main-Class
标头提供此信息,该标头具有以下通用形式:Main-Class: classname
值
classname
是作为应用程序入口点的类的名称。回想一下,入口点是一个具有签名为
public static void main(String[] args)
的方法的类。
老兄,如果您正在扩展Applet类,那么在声明类后,在注释中添加以下代码:
/*
<applet code = "class-name" width = 300 height = 200></applet>
*/
然后使用运行
appletviewer file-name.java
如果它正常扩展帧,则:
添加这样的方法:
public static void main(String argsp[])
{
new Constructor();
}
它会起作用的。