簡體   English   中英

如何將其嵌入我的網站?

[英]How do I embed this into my website?

我試圖將游戲嵌入我用Java編程的網站。 我不知道如何從eclipse(這就是我的JDE)中獲取代碼並將其放入我的網站。 我正在使用weebly.com網站。 我確實有幾個未完成的課程,我想上傳我未完成的游戲以及已完成的游戲以顯示進度。 所以我問你,如何從eclipse將此代碼獲取到我的網站。 感謝您的幫助,以下是我的代碼。

這是我的Main班:

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;
    }
}

這是我的Enemy課:

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);
}
}

這是我的Bullet課(此游戲正在進行中,該課沒有進行,但這只是我即將完成的未完成的工作)

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);
    }
}

這是我的Restart課程(再次未完成,但仍在途中)

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;
    }
}

如果您只想從Web在新窗口中啟動Java程序,則必須使用Applets將Java程序嵌入到瀏覽器中,或者將Java Web Start嵌入到Java Web Start中。

根據您使用的Java版本,某些安全問題可能適用。

以下是一些有關如何執行此操作的示例:

這里是Java Web Start的信息:

您將需要創建一個.jar文件和一個已編譯的.class文件,而不是.java文件。 要在HTML中實現Java代碼,可以使用不贊成使用的<applet>標記或新的<object>標記。

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

codetype =“ application / java”-代碼類型,請使用application / java。

classid =“?” -要運行的Java類,例如。 java:MyApplet.class

archive =“ url”-包含類文件的Java存檔文件(.jar)的地址或文件名。

width =“?” -窗口的寬度,以像素為單位。

height =“?” -窗口的高度,以像素為單位。

只是告訴您,我不確定它是否會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM