gpt4 book ai didi

java - 如何重新启动 Java 小程序?

转载 作者:行者123 更新时间:2023-11-29 07:53:52 27 4
gpt4 key购买 nike

我正在为一个学校项目制作游戏,并且已经在这部分停留了几天。我将如何重新启动以下小程序?我尝试制作一个restart() 方法,但缺乏必要的技巧。

package main;

import game.framework.Animation;

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.lang.Thread.State;
import java.net.URL;
import java.util.ArrayList;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JPanel;


//add speedboost
public class Main extends Applet implements Runnable, KeyListener{

enum GameState {
Running, Dead
}


static GameState state = GameState.Running;



private Background bg2, bg1;
private boolean restart = false;
private Player player;
private SpeedBoost sb1;
private Image image;
private Image backsprite1, backsprite2;
private Image player1, dad1, dad2, dad3;
private Image player2;
private Image player3;
private Image back1;
private Image back2, endscreen;
private Image back3, coin, bigcoin;
private Image back4, sbimg;
public Image tilebase, platform;
private Block block1, block2, block3, block4;
private Coin coin1, coin2, coin3, coin4, coin5;
private LargeCoin bc1;
//use for the base...
private Dad dad;
private Graphics second;
private Animation playwalk, dadwalk;
private URL base;
private Platform plat1, plat2, plat3, plat4, plat5, plat6, plat7;
public static int score = 1, coinsint = 1;
public static String score2, coins = "1";
public static int scorespeed = 1;
public int hs1, hs2, hs3, hs4, hs5, totcoins;
public String hs1s, hs2s, hs3s, hs4s, hs5s, totcoinss;
public Ends ends;
@Override
public void init() {
setSize(800, 480);
setBackground(Color.WHITE);
setFocusable(true);
addKeyListener(this);
Frame frame = (Frame) this.getParent().getParent();
frame.setTitle("Game v1.2.2");
try {
base = getDocumentBase();
} catch (Exception e) {
// TODO: handle exception
}

endscreen = getImage(base, "data/endscreen.png");

coin = getImage(base, "data/coin.png");
bigcoin = getImage(base, "data/bigcoin.png");

tilebase = getImage(base, "data/tilebase.png");
platform = getImage(base, "data/blocksmall.png");
back1 = getImage(base, "data/back1.png");
back2 = getImage(base, "data/back2.png");
back3 = getImage(base, "data/back3.png");
back4 = getImage(base, "data/back4.png");`enter code here`

sbimg = getImage(base, "data/speedboost.png");
player1 = getImage(base, "data/player1.png");
player2 = getImage(base, "data/player2.png");
player3 = getImage(base, "data/player3.png");

dad1 = getImage(base, "data/dad1.png");
dad2 = getImage(base, "data/dad2.png");
dad3 = getImage(base, "data/dad3.png");

backsprite1 = back1;
backsprite2 = back2;

playwalk = new Animation();
playwalk.addFrame(player1, 80);
playwalk.addFrame(player2, 80);
playwalk.addFrame(player3, 80);

dadwalk = new Animation();
dadwalk.addFrame(dad1, 80);
dadwalk.addFrame(dad2, 80);
dadwalk.addFrame(dad3, 80);
}
public void animate() {
playwalk.update(15);
dadwalk.update(15);


}








@Override
public void start() {
state = state.Running;
ends = new Ends(-3, 0);
//create objects at positions

coin1 = new Coin(-100, -10);
coin2 = new Coin(-10, -10);
coin3 = new Coin(-10, -10);
coin4 = new Coin(-10, -10);
coin5 = new Coin(-10, -10);

player = new Player();



dad = new Dad();

bg1 = new Background(1, 0);
bg2 = new Background(2099, 0);

plat1 = new Platform(0,0);
plat2 = new Platform(-100,0);
plat3 = new Platform(-200,0);
plat4 = new Platform(-300,0);
plat5 = new Platform(-400,0);
plat6 = new Platform(-500,0);
plat7 = new Platform(-600,0);

sb1 = new SpeedBoost(-100, 0);
bc1 = new LargeCoin(-99, 0);

block1 = new Block(0, 0);
block2 = new Block(0, 0);
block3 = new Block(0, 0);
block4 = new Block(0, 0);



Thread thread = new Thread(this);
thread.start();
}




@Override
public void stop() {
// TODO Auto-generated method stub
}

@Override
public void destroy() {
// TODO Auto-generated method stub
}

@Override
public void run() {
if (state == GameState.Running) {
while (true) {
//selecting sprites for the background

//updates go here
if(bg1.getBgX() < -2100){
bg1.setBgX(2100);
}
if(bg2.getBgX() < -2100){
bg2.setBgX(2100);
}

//backgrounds arent working
if(bg1.getBgX() > 2000){
Random rand = new Random();

int nel = rand.nextInt(4) + 1;
if(nel == 1){
backsprite1 = back1;
}if(nel == 2){
backsprite1 = back2;
}if(nel == 3){
backsprite1 = back3;
}if(nel == 4){
backsprite1 = back4;
}
}

if(bg2.getBgX() > 2000){
Random rand = new Random();

int n1 = rand.nextInt(4) + 1;
if(n1 == 1){
backsprite2 = back1;
}if(n1 == 2){
backsprite2 = back2;
}if(n1 == 3){
backsprite2 = back3;
}if(n1 == 4){
backsprite2 = back4;
}
}

block4.update();
block3.update();
block2.update();
block1.update();

sb1.update();

bc1.update();

player.update();

dad.update();

bg1.update();
bg2.update();

coin1.update();
coin2.update();
coin3.update();
coin4.update();
coin5.update();


plat1.update();
plat2.update();
plat3.update();
plat4.update();
plat5.update();
plat6.update();
plat7.update();

if(Block.lives < 0){
state = GameState.Dead;

}



animate();
repaint();
try {
Thread.sleep(17);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

}
@Override
public void update(Graphics g) {
if (image == null) {
image = createImage(this.getWidth(), this.getHeight());
second = image.getGraphics();
}


//other updates go here
block1.update();
block2.update();
block3.update();
block4.update();



sb1.update();

bc1.update();

coin1.update();
coin2.update();
coin3.update();
coin4.update();
coin5.update();

plat1.update();
plat2.update();
plat3.update();
plat4.update();
plat5.update();
plat6.update();
plat7.update();

bg1.update();
bg2.update();

player.update();
dad.update();


second.setColor(getBackground());
second.fillRect(0, 0, getWidth(), getHeight());
second.setColor(getForeground());
paint(second);

g.drawImage(image, 0, 0, this);


}


@Override
public void paint(Graphics g) {
if (state == GameState.Running) {
//main graphics identifyers here
// first are drawn below last
//need to make the platform lower down, see class for explanation

g.drawImage(backsprite1, bg1.getBgX(), bg1.getBgY(), this);
g.drawImage(backsprite2, bg2.getBgX(), bg2.getBgY(), this);


g.drawImage(playwalk.getImage(), player.getCenterX(), player.getCenterY(), this);

g.drawImage(platform, plat1.getCenterX(), plat1.getCenterY(), this);
g.drawImage(platform, plat2.getCenterX(), plat2.getCenterY(), this);
g.drawImage(platform, plat3.getCenterX(), plat3.getCenterY(), this);
g.drawImage(platform, plat4.getCenterX(), plat4.getCenterY(), this);
g.drawImage(platform, plat5.getCenterX(), plat5.getCenterY(), this);
g.drawImage(platform, plat6.getCenterX(), plat6.getCenterY(), this);
g.drawImage(platform, plat7.getCenterX(), plat7.getCenterY(), this);

g.drawImage(sbimg, sb1.getCenterX(), sb1.getCenterY(), this);

g.drawImage(bigcoin, bc1.centerX, bc1.centerY, this);

g.drawImage(dadwalk.getImage(), dad.centerX, dad.centerY, this);

g.drawImage(tilebase, block1.getCenterX(), block1.getCenterY(), this);
g.drawImage(tilebase, block2.getCenterX(), block2.getCenterY(), this);
g.drawImage(tilebase, block3.getCenterX(), block3.getCenterY(), this);
g.drawImage(tilebase, block4.getCenterX(), block4.getCenterY(), this);

g.drawImage(coin, coin1.getCenterX(), coin1.getCenterY(), this);
g.drawImage(coin, coin2.getCenterX(), coin2.getCenterY(), this);
g.drawImage(coin, coin3.getCenterX(), coin3.getCenterY(), this);
g.drawImage(coin, coin4.getCenterX(), coin4.getCenterY(), this);
g.drawImage(coin, coin5.getCenterX(), coin5.getCenterY(), this);



g.setColor(Color.MAGENTA);
g.drawString(score2, 700, 25);
Font font = new Font("Serif", Font.PLAIN, 36);
g.setFont(font);

g.drawString(coins, 20, 25);


}else if (state == GameState.Dead) {
totcoins += coinsint;
coinsint = 0;
hs1s = String.valueOf(hs1);
hs2s = String.valueOf(hs2);
hs3s = String.valueOf(hs3);
hs4s = String.valueOf(hs4);
hs5s = String.valueOf(hs5);
totcoinss = String.valueOf(totcoins);




if(score > hs1){
hs1 = score;
}else if(score > hs2){
hs2 = score;
}else if(score > hs3){
hs3 = score;
}else if(score > hs4){
hs4 = score;
}else if(score > hs5){
hs5 = score;
}
scorespeed = 0;
//format this shit up in here
//when restart is init, then this will be tested


g.setColor(Color.BLACK);
g.fillRect(0, 0, 800, 480);
g.setColor(Color.WHITE);
g.drawString(hs1s, 230, 220);
g.drawString(hs2s, 230, 250);
g.drawString(hs3s, 230, 280);
g.drawString(hs4s, 230, 310);
g.drawString(hs5s, 230, 340);
g.drawString(totcoinss, 700, 100);
g.drawImage(endscreen, ends.cornX, ends.cornY, this);

}

}
//fix the android stuff







@Override
public void keyPressed(KeyEvent e) {

switch (e.getKeyCode()) {
case KeyEvent.VK_UP:

player.jump();
Player.jumps += 1;
break;


}
switch (e.getKeyCode()) {
case KeyEvent.VK_SPACE:
if(state == state.Dead){

}
}


}

@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
switch (e.getKeyCode()) {
case KeyEvent.VK_UP:

break;
}
}

@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}
public Background getBg1() {
return bg1;
}
public void setBg1(Background bg1) {
this.bg1 = bg1;
}
public Background getBg2() {
return bg2;
}
public void setBg2(Background bg2) {
this.bg2 = bg2;
}
public Player getPlayer() {
return player;
}
public void setPlayer(Player player) {
this.player = player;
}
public Image getImage() {
return image;
}
public void setImage(Image image) {
this.image = image;
}
public Image getBacksprite() {
return backsprite1;
}
public void setBacksprite(Image backsprite) {
this.backsprite1 = backsprite;
}
public Image getBacksprite1() {
return backsprite1;
}
public void setBacksprite1(Image backsprite1) {
this.backsprite1 = backsprite1;
}
public Image getBacksprite2() {
return backsprite2;
}
public void setBacksprite2(Image backsprite2) {
this.backsprite2 = backsprite2;
}
public Image getPlayer1() {
return player1;
}
public void setPlayer1(Image player1) {
this.player1 = player1;
}
public Image getPlayer2() {
return player2;
}
public void setPlayer2(Image player2) {
this.player2 = player2;
}
public Image getPlayer3() {
return player3;
}
public void setPlayer3(Image player3) {
this.player3 = player3;
}
public Image getBack1() {
return back1;
}
public void setBack1(Image back1) {
this.back1 = back1;
}
public Image getBack2() {
return back2;
}
public void setBack2(Image back2) {
this.back2 = back2;
}
public Image getBack3() {
return back3;
}
public void setBack3(Image back3) {
this.back3 = back3;
}
public Image getBack4() {
return back4;
}
public void setBack4(Image back4) {
this.back4 = back4;
}
public Graphics getSecond() {
return second;
}
public void setSecond(Graphics second) {
this.second = second;
}
public Animation getPlaywalk() {
return playwalk;
}
public void setPlaywalk(Animation playwalk) {
this.playwalk = playwalk;
}
public URL getBase() {
return base;
}
public void setBase(URL base) {
this.base = base;
}
public static Image getTilebase() {
// TODO Auto-generated method stub
return null;
}

public GameState getState() {
return state;
}

public void setState(GameState state) {
this.state = state;
}

public SpeedBoost getSb1() {
return sb1;
}

public void setSb1(SpeedBoost sb1) {
this.sb1 = sb1;
}

public Image getCoin() {
return coin;
}

public void setCoin(Image coin) {
this.coin = coin;
}

public Image getSbimg() {
return sbimg;
}

public void setSbimg(Image sbimg) {
this.sbimg = sbimg;
}

public Image getPlatform() {
return platform;
}

public void setPlatform(Image platform) {
this.platform = platform;
}

public Block getBlock1() {
return block1;
}

public void setBlock1(Block block1) {
this.block1 = block1;
}

public Block getBlock2() {
return block2;
}

public void setBlock2(Block block2) {
this.block2 = block2;
}

public Block getBlock3() {
return block3;
}

public void setBlock3(Block block3) {
this.block3 = block3;
}

public Block getBlock4() {
return block4;
}

public void setBlock4(Block block4) {
this.block4 = block4;
}

public Coin getCoin1() {
return coin1;
}

public void setCoin1(Coin coin1) {
this.coin1 = coin1;
}

public Coin getCoin2() {
return coin2;
}

public void setCoin2(Coin coin2) {
this.coin2 = coin2;
}

public Coin getCoin3() {
return coin3;
}

public void setCoin3(Coin coin3) {
this.coin3 = coin3;
}

public Coin getCoin4() {
return coin4;
}

public void setCoin4(Coin coin4) {
this.coin4 = coin4;
}

public Coin getCoin5() {
return coin5;
}

public void setCoin5(Coin coin5) {
this.coin5 = coin5;
}

public Platform getPlat1() {
return plat1;
}

public void setPlat1(Platform plat1) {
this.plat1 = plat1;
}

public Platform getPlat2() {
return plat2;
}

public void setPlat2(Platform plat2) {
this.plat2 = plat2;
}

public Platform getPlat3() {
return plat3;
}

public void setPlat3(Platform plat3) {
this.plat3 = plat3;
}

public Platform getPlat4() {
return plat4;
}

public void setPlat4(Platform plat4) {
this.plat4 = plat4;
}

public Platform getPlat5() {
return plat5;
}

public void setPlat5(Platform plat5) {
this.plat5 = plat5;
}

public Platform getPlat6() {
return plat6;
}

public void setPlat6(Platform plat6) {
this.plat6 = plat6;
}

public Platform getPlat7() {
return plat7;
}

public void setPlat7(Platform plat7) {
this.plat7 = plat7;
}

public static int getScore() {
return score;
}

public static void setScore(int score) {
Main.score = score;
}

public static int getCoinsint() {
return coinsint;
}

public static void setCoinsint(int coinsint) {
Main.coinsint = coinsint;
}

public static String getScore2() {
return score2;
}

public static void setScore2(String score2) {
Main.score2 = score2;
}

public static String getCoins() {
return coins;
}

public static void setCoins(String coins) {
Main.coins = coins;
}

public static int getScorespeed() {
return scorespeed;
}

public static void setScorespeed(int scorespeed) {
Main.scorespeed = scorespeed;
}

public void setTilebase(Image tilebase) {
this.tilebase = tilebase;
}
}

最佳答案

一个好的方法可能是使用这样的方法:

  • init(应该调用一次,并且只能由浏览器调用)。设置任何常见的 GUI 元素并调用 startNewGame() 方法。
  • start(当用户恢复浏览器时调用)。取消暂停操作(在 stop 中暂停)并继续游戏。
  • stop 暂停当前游戏。
  • startNewGame() 设置初始生命、棋子/角色布局、分数等

当用户想要开始一个新游戏时,同样调用startNewGame()

关于java - 如何重新启动 Java 小程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19284149/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com