Implementacja aplikacji java na stronę www

0

Witam wszystkich forumowiczów.
Mam problem z implementacją gry napisanej w javie rozszerzonej bibliotekami slick2d.

Problem polega na tym, że chce aby gra mogła być uruchamiana na stronie internetowej bez pobierania plików przez użytkownika.
Czy jest możliwość zaimplementowania tego kodu w sposób podobny jak aplet?

Próbowałem zrobić to w sposób opisany na stronie http://ninjacave.com/slickapplet jednak po załadowaniu wszystkich plików (przy próbie uruchomienia) występuje błąd.

ERROR:MainPackage.Gra
java.lang.InstantiationException: MainPackage.Gra
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.newdawn.slick.AppletGameContainer.init(AppletGameContainer.java:124)
at org.lwjgl.util.applet.AppletLoader.switchApplet(AppletLoader.java:766)
at org.lwjgl.util.applet.AppletLoader.run(AppletLoader.java:644)
at java.lang.Thread.run(Unknown Source)
Fatal error occured (8): Unable to create game container
java.lang.RuntimeException: Unable to create game container
at org.newdawn.slick.AppletGameContainer.init(AppletGameContainer.java:148)
at org.lwjgl.util.applet.AppletLoader.switchApplet(AppletLoader.java:766)
at org.lwjgl.util.applet.AppletLoader.run(AppletLoader.java:644)
at java.lang.Thread.run(Unknown Source)
0

Dokumentacja mówi:

public class InstantiationException
extends Exception
Thrown when an application tries to create an instance of a class using the newInstance method in class Class, but the specified class object cannot be instantiated. The instantiation can fail for a variety of reasons including but not limited to:

  • the class object represents an abstract class, an interface, an array class, a primitive type, or void
  • the class has no nullary constructor

Czy którykolwiek z tych dwóch punktów jest spełniony dla klasy MainPackage.Gra?

Poza tym nazwy pakietów powinny składać się z małych liter raczej.

0

Wrzucam cały kod pliku MainPackage.TGra . Proszę o sprecyzowanie odpowiedzi.

package MainPackage;
import org.newdawn.slick.*;
import org.newdawn.slick.state.*;

public class TGra extends StateBasedGame {

	public TotalPunkty suma = new TotalPunkty();
	public static final int menu = 0;
	public static final int gra = 1;
	public static final int high = 2;
	public static final int about = 3;
	public static final int howto = 4;
	public static final int over = 5;
	BasicGameState G = new Gra(gra, suma);
	public BasicGameState O = new Over(over, suma);
	
	public static String title = "TGame";
	
	
	public TGra(String name) {
		super(name);
		this.addState(new Menu(menu));
		this.addState(G);
		this.addState(new High(high));
		this.addState(new About(about));
		this.addState(new HowTo(howto));
		this.addState(O);
	}
	

	public static void main(String[] args) throws SlickException {
		AppGameContainer MainWindow;
	
		try {
			MainWindow = new AppGameContainer(new TGra(title));
			MainWindow.setDisplayMode(800, 600, false);
			MainWindow.setShowFPS(true);
			MainWindow.setTargetFrameRate(60);
			MainWindow.start();
		} catch(SlickException se) {
			se.printStackTrace();
		}
	
	}

	public void initStatesList(GameContainer gc) throws SlickException {
		this.getState(menu).init(gc, this);
		this.getState(gra).init(gc, this);
		this.getState(high).init(gc, this);
		this.getState(about).init(gc, this);
		this.getState(howto).init(gc, this);
		this.getState(over).init(gc, this);
		this.enterState(menu);
	}

}


1

Dodaj konstruktor
public TGra() {
this("Nazwa");
}

0

Wszędzie są dodane puste konstruktory. Zrobiłem testowo pustą aplikacje z użyciem slicka i udało się ją wrzucić na stronę. Bład leży chyba gdzie indziej...

1 użytkowników online, w tym zalogowanych: 0, gości: 1