Liebe Community,
ich hab mir in dem vergangenen wochenende ein tutorial über die applet-spieleprogrammierung angeschaut nachprogrammiert und verändert/erweitert
das alles geschah in eclipse und is auch ausführbar bzw funktioniert einwandfrei
nun möchte ich das applet auf meine htmlseite(wurde zu übungszwecken erstellt) einbinden ...
der tag war schnell gefunden die syntax auch doch ürgendwie will html nicht wie ich will
ich benutze phase 5 und die seiten funktionieren auch alle bis auf das angeschprochene applet ich hoffe das mir jemand von euch helfen kann(und ja das applet is im gleichen verzeichnis wie die html )
das problem :
nach ausführen der html bekomme ich durch rechtsklich auf das applet die java console zu gesicht die mir folgendes mitzuteilen hat
java.lang.NoClassDefFoundError: Main (wrong name: onlineTutorialFirstGame/Main)
(die Klasse die init() start() usw usw heist Main.class) insgesamt sind es drei datein
hier is der link zu seite :
http://www.train.spacequadrat.de/TutorialApplet1.html
die Frage? :
was is da schief gelaufen ?? und wenn ich es schaffe das applet zum laufen zu bringen muss ich es dann anpassen wenn ich es hochgeladen habe in bezug auf den codebase ?? bzw reicht dann imme noch "../" wenn es im gleichen archiv ist ??
nähere beschreibung :
der html-code sieht so aus
<applet code="Main.class" width="600" height="400"></applet>
(anmerkung: ich habs auch schon mit codebase und relativen bzw absoluten pfad versucht bringt aber leider nix ...)
die init() -methode in java so :
public void init ()
{
// Mauszeiger wird zu Fadenkreuz
c = new Cursor (Cursor.CROSSHAIR_CURSOR);
this.setCursor ©;
// Neue Hintergrundfarbe
Color supergreen= new Color (0, 255, 0);
// Setzen der Hintergrundfarbe
setBackground (supergreen);
// Setzten der Schrift
setFont (f);
// Speed wird von Parameter speed des Applets bestimmt
if (getParameter ("speed") != null)
{
speed = Integer.parseInt(getParameter("speed"));
}
else speed = 15;
// Laden der Bilder und Audiodateien und einmaliges Abspielen, um längere Ladezeiten während des Spiels zu vermeiden
hitnoise = getAudioClip (getCodeBase() , "gun.au");
hitnoise.play();
hitnoise.stop();
shotnoise = getAudioClip (getCodeBase() , "miss.au");
shotnoise.play();
shotnoise.stop();
outnoise = getAudioClip (getCodeBase() , "error.au");
outnoise.play();
outnoise.stop();
// Initialisierung der Spielobjekte
player = new Player ();
redball = new Ball (10, 190, 250, 1, -1, 4, Color.red, outnoise, player);
blueball = new Ball (10, 190, 150, 1, 1, 3, Color.blue, outnoise, player);
}
die start so :
public void start ()
{
// Schaffen eines neuen Threads, in dem das Spiel läuft
th = new Thread (this);
th.start ();
}
und die run so :
public void run ()
{
// Erniedrigen der ThreadPriority um zeichnen zu erleichtern
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
while (true)
{
if (player.getLives() >= 0 && !isStoped)
{
redball.move();
blueball.move();
}
repaint();
try
{
// Stoppen des Threads für 10 Millisekunden
Thread.sleep (speed);//bestimmt maßgeblich die geschwindigkeit des spiels!!!
}
catch (InterruptedException ex)
{
// do nothing
}
// Zurücksetzen der ThreadPriority auf Maximalwert
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}
ich hoffe ihr könnt mir helfen falls ihr noch zusätzliche informationen braucht postet sie einfach rein und ich werds nachholen
ich danke vorab schonmal für die hilfe
mfg Sisan