简体   繁体   中英

How do I embed this into my website?

I am attempting to embed a game into my website that I programmed in java. I have no idea how to take my code from eclipse(which is what my JDE is) and put it into my website. I am using a weebly.com website. I do have several unfinished classes, I want to upload my incomplete games as well as complete just to show progress. so I ask you, how do I get this code from eclipse, to my website. Thanks for the help and the following is my code.

This is my Main class:

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;

public class Main extends Applet implements Runnable {

    private static final long serialVersionUID = 1L;
    Thread th = new Thread(this);
    boolean running = true;
    public int Jweidth = 400, Jheight = 400;
    Image dbImage;
    Graphics dbGraphics;
    Bullet b;
    Player p;
    Enemy e, e2, e3, e4, e5, e6, e7, e8;
    HealthBar hb;
    NameSign ns;
    Restart r;
    private boolean BFire;

    public void init() {
        //set window size
        setSize(Jweidth, Jheight);
        //calls player class
        p = new Player(this);
        //calls healthBar
        hb = new HealthBar(this, p);
        //calls enemy class
        e = new Enemy(this);
        e2 = new Enemy(42, 0, this);
        e3 = new Enemy(84, 0, this);
        e4 = new Enemy(126, 0, this);
        e5 = new Enemy(0, 42, this);
        e6 = new Enemy(42, 42, this);
        e7 = new Enemy(84, 42, this);
        e8 = new Enemy(126, 42, this);
        //calls bullet class
        b = new Bullet(this);
        //calls nameSign class
        ns = new NameSign(this);
        //calls Restart class
        r = new Restart(this);
    }

    public void start() {
        //starts a new thread
        th.start();
    }

    public void stop() {
        running = false;
    }

    public void destroy() {
        running = false;
    }

    public void run() {
        while (running) {
            setBFire(b.getFire());
            //calls update method from player class
            p.update(this);
            //calls update method from enemy class
            e.update(this, p);
            e2.update(this, p);
            e3.update(this, p);
            e4.update(this, p);
            e5.update(this, p);
            e6.update(this, p);
            e7.update(this, p);
            e8.update(this, p);
            //calls update method from fire class if BFire is true
            if (setBFire(true)) {
                b.update(this, p);
            }
            //calls update method from HealthBar class
            hb.update(this, p);
            //calls update method from NameSign class
            ns.update(this);
            //calls update method from Restart class
            r.update(this, p);

            repaint();
            //sets Thread to repeat every 17 milliseconds
            try {
                Thread.sleep(17);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    //doublebuffer
    public void update(Graphics g) {
        dbImage = createImage(Jweidth, Jheight);
        dbGraphics = dbImage.getGraphics();
        paint(dbGraphics);
        g.drawImage(dbImage, 0, 0, this);
    }

    //paint class
    public void paint(Graphics g) {
        //calls paint method from player class
        p.paint(g, this);
        //calls paint method from enemy class
        e.paint(g, this);
        e2.paint(g, this);
        e3.paint(g, this);
        e4.paint(g, this);
        e5.paint(g, this);
        e6.paint(g, this);
        e7.paint(g, this);
        e8.paint(g, this);
        //calls paint method from bullet class
        b.paint(g, this);
        //calls paint method from healthBar class
        hb.paint(g, this);
        //calls paint method from nameSign class
        ns.paint(g, this);
        //calls paint method from Restart class
        r.paint(g);
    }

    public int getJweidth() {
        return Jweidth;
    }

    public int getJheight() {
        return Jheight;
    }

    //ignore all boolean Bfire methods
    public boolean isBFire() {
        return BFire;
    }

    public boolean setBFire(boolean bFire) {
        BFire = bFire;
        return bFire;
    }
}

This is my Enemy class:

import java.awt.*;
import java.net.URL;

public class Enemy {

//Enemy ints
private int x = 0, y = 0, speed = 2;
private URL url;
private Image Enemy;
//adds image
public Enemy(Main m){
    url = m.getDocumentBase();
    Enemy = m.getImage(url, "Enemy.png");
}
public Enemy(int i, int j, Main m) {
    url = m.getDocumentBase();
    Enemy = m.getImage(url, "Enemy.png");
    x = i;
    y = j;
}
//same as run method but just for the enemy
public void update(Main m, Player p){
    x += speed;
    if(x <= 0){
        speed = 2;
        y += 32;
    }
    else if(x > m.getJweidth() - 32){
        speed = -2;
        y += 32;
    }
    //calls collision method
    collision(p);
}
//enemy player hitbox
private void collision(Player p) {
    int Px = p.getX();
    int Py = p.getY();
    int Pr = p.getRadious();

    if(Px - Pr <= x && Px + Pr >= x && Py - Pr <= y && Py + Pr >= y){
        p.hit();
    }
}
//Graphics for enemy
public void paint(Graphics g, Main m){
    g.drawImage(Enemy, x, y, m);
}
}

This is my Bullet class (this game is a work in progress and this class isn't working, but that is just unfinished work that I will do soon)

import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.net.URL;

public class Enemy {

    //Enemy ints
    private int x = 0, y = 0, speed = 2;
    private URL url;
    private Image Enemy;

    //adds image
    public Enemy(Main m) {
        url = m.getDocumentBase();
        Enemy = m.getImage(url, "Enemy.png");
    }

    public Enemy(int i, int j, Main m) {
        url = m.getDocumentBase();
        Enemy = m.getImage(url, "Enemy.png");
        x = i;
        y = j;
    }

    //same as run method but just for the enemy
    public void update(Main m, Player p) {
        x += speed;
        if (x <= 0) {
            speed = 2;
            y += 32;
        } else if (x > m.getJweidth() - 32) {
            speed = -2;
            y += 32;
        }
        //calls collision method
        collision(p);
    }

    //enemy player hitbox
    private void collision(Player p) {
        int Px = p.getX();
        int Py = p.getY();
        int Pr = p.getRadious();

        if (Px - Pr <= x && Px + Pr >= x && Py - Pr <= y && Py + Pr >= y) {
            p.hit();
        }
    }

    //Graphics for enemy
    public void paint(Graphics g, Main m) {
        g.drawImage(Enemy, x, y, m);
    }
}

This is my Restart class(once again unfinished but on the way)

import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class Restart implements KeyListener {

    private int x, y;
    private int pHealth;
    private String string = "Would you like to play again?";
    private boolean restart = false;

    public Restart(Main m) {
        x = 600;
        y = 600;
    }

    public void update(Main m, Player p) {
        //checks if players health = 0 and if restart is true
        pHealth = p.getpHealth();
        if (setRestart(true && pHealth <= 0)) {
            System.out.println("Restart");
            x = m.Jweidth / 2 - 75;
            y = m.Jheight / 2;
        }
        //reset ints for player
        //TODO
        //reset ints for enemy
        //TODO
        //reset ints for bullet
        //TODO
        //reset ints for healthbar
        //TODO
    }

    public void paint(Graphics g) {
        g.drawString(string, x, y);
    }

    public void keyPressed(KeyEvent e) {
        switch (e.getKeyCode()) {
            case KeyEvent.VK_F1: {
                setRestart(true);
                break;
            }
        }
    }

    public void keyReleased(KeyEvent e) {
        switch (e.getKeyCode()) {
            case KeyEvent.VK_F1: {
                setRestart(false);
                break;
            }
        }
    }

    public void keyTyped(KeyEvent arg0) {
    }

    //ignore all boolean methods

    public boolean isRestart() {
        return restart;
    }

    public boolean setRestart(boolean restart) {
        this.restart = restart;
        return restart;
    }
}

You will have to use Applets to embed your Java program in a browser, or Java Web Start if you just want to start it from the web in a new window.

Some security issues may apply depending on the Java version you are using.

Here are some examples on how to do it:

And here for the Java Web Start:

You're gonna need to make a .jar file and a compiled .class file, no .java file. To implement Java code in HTML, you can use the deprecated <applet> tag, or the new <object> tag.

<object codetype="application/java" classid="java:yourclass.class" archive="yourjar.jar" width="1000" height="1000"></object>

codetype="application/java" - The type of code, use application/java.

classid="?" - Java class to run, eg. java:MyApplet.class

archive="url" - Address or filename of the Java archive file (.jar) containing the class files.

width="?" - The width of the window, in pixels.

height="?" - The height of the window, in pixels.

Just telling you, I'm not sure that it'll work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM