So,
mal ein bisschen herumgestöbert: getCodeBase() gibt also die URL zum Applet zurück. Klingt einleuchtend.
In meiner Website (Game) habe ich also ein Applet eingebaut. Dieses Applet ist nichts weiter als ein JPanel, auf dem ein Bild gezeichnet werden soll. Nur gibt es Probleme beim laden des Bildes. Dass ich nicht einfach den Pfad meines Computers zu dem Bild angeben kann, ist klar. Ich muss also relative Pfade nehmen. Natürlich dache ich mir dann, Ordnername slash Ressourcenname ("res/Character1.png"). Dies klappt jedoch nicht. Also wollte ich es mit getCodeBase() versuchen, doch dabei bekomme ich nur "www.thecodingproject.bplaced.net", ich hatte jedoch erwartet, dass gleich der Name mit ran kommt. Nun ja, einfach den Jarnamen dranheften, dachte ich mir. Komischerweise wurde der Appname aber nie drangehängt. Jetzt frage ich mich, warum es denn so schwer ist, eine Ressource für ein Applet zu laden...Und ob jemand mal ein Beispiel posten könnte, wie es denn richtig geht.
natürlich kommt nun auch ein wenig Code:
Im Constructor der Parameter "JumpnRun frame" ist übrigens das Applet.
Vielen Dank im Vorraus für Antworten. Über ein kleines Beispiel oder Kommentare/Vorschläge in meinem Code würde ich mich sehr freuen.
mal ein bisschen herumgestöbert: getCodeBase() gibt also die URL zum Applet zurück. Klingt einleuchtend.
In meiner Website (Game) habe ich also ein Applet eingebaut. Dieses Applet ist nichts weiter als ein JPanel, auf dem ein Bild gezeichnet werden soll. Nur gibt es Probleme beim laden des Bildes. Dass ich nicht einfach den Pfad meines Computers zu dem Bild angeben kann, ist klar. Ich muss also relative Pfade nehmen. Natürlich dache ich mir dann, Ordnername slash Ressourcenname ("res/Character1.png"). Dies klappt jedoch nicht. Also wollte ich es mit getCodeBase() versuchen, doch dabei bekomme ich nur "www.thecodingproject.bplaced.net", ich hatte jedoch erwartet, dass gleich der Name mit ran kommt. Nun ja, einfach den Jarnamen dranheften, dachte ich mir. Komischerweise wurde der Appname aber nie drangehängt. Jetzt frage ich mich, warum es denn so schwer ist, eine Ressource für ein Applet zu laden...Und ob jemand mal ein Beispiel posten könnte, wie es denn richtig geht.
natürlich kommt nun auch ein wenig Code:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Screen extends JPanel implements Runnable {
private static final long serialVersionUID = 1L;
public int x,y;
public Thread t = new Thread(this);
public CCharacter c;
public boolean running = true;
public boolean jumping = false;
public Screen(JumpnRun frame){
c = new CCharacter(40,40,32,32);
x = frame.getSize().width;
y = frame.getSize().height;
t.start();
frame.addMouseListener(new MouseAdapter(){
});
frame.addMouseMotionListener(new MouseMotionAdapter(){
});
frame.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(e.getKeyCode() == KeyEvent.VK_SPACE){
if(!c.jumping){
c.jumping = true;
}
}
if(e.getKeyCode() ==KeyEvent.VK_DOWN){
if(!c.crawl){
c.crawl = true;
}
}
if(e.getKeyCode() == KeyEvent.VK_LEFT){
c.x -= 2;
}
if(e.getKeyCode() == KeyEvent.VK_RIGHT){
c.x += 2;
}
}
public void keyReleased(KeyEvent e){
if(e.getKeyCode() == KeyEvent.VK_DOWN){
c.crawl = false;
}
}
});
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.fillRect(0, 0, x, y);
c.draw(g);
}
public void run() {
while(true){
if(running){
c.jump();
c.crawl();
repaint();
}else{
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
Java:
import java.awt.*;
import javax.swing.*;
public class CCharacter extends Rectangle {
private static final long serialVersionUID = 1L;
private Image img;
public int counter = 0;
public boolean jumping = false;
public boolean crawl = false;
public CCharacter(int x, int y, int width,int height){
img = new ImageIcon("res/Character1.png").getImage();
setBounds(x,y,width,height);
}
public void jump(){
if(jumping){
if(counter<=20){
y--;
counter++;
}else if(counter>20 && counter<=40){
y++;
counter++;
}else if(counter>40){
jumping = false;
counter = 0;
}
System.out.println(y);
}
}
public void crawl(){
if(!jumping){
if(crawl){
}
}
}
public void draw(Graphics g){
g.drawImage(img, x, y, width,height,null);
}
}
Vielen Dank im Vorraus für Antworten. Über ein kleines Beispiel oder Kommentare/Vorschläge in meinem Code würde ich mich sehr freuen.