gpt4 book ai didi

java - 添加时间我不知道如何添加

转载 作者:行者123 更新时间:2023-12-01 16:18:45 26 4
gpt4 key购买 nike

这是我的迷宫代码,我想在我的游戏中添加一个计时器,如果他在 60 秒内没有完成迷宫,它将显示游戏结束并且游戏将停止

主类 包 javamazegame;

import javax.swing.*;


public class JavaMazegame {

public JavaMazegame(){
JFrame f = new JFrame();
f.setTitle("MazeGame Version 1.0");
f.setSize(464,485);
f.add(new Board());
f.setLocationRelativeTo(null);
f.setVisible(true);
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



}

public static void main(String[] args) {
new JavaMazegame();
}

}

如何在我的迷宫游戏中添加时间板类

package javamazegame;

import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;
import javax.swing.*;

public class Board extends JPanel implements ActionListener{

private Timer timer;

private Map m;

private Player p;

public boolean win = false ;

private String Message = " ";

private Font font = new Font("Serif",Font.BOLD,48);



public Board(){

m = new Map();
p = new Player();
addKeyListener(new Al());
setFocusable(true);
timer = new Timer(25,this);
timer.start();
System.out.println(timer);
}



public void actionPerformed(ActionEvent e){
if(m.getMap(p.getTileX(),p.getTileY()).equals("f")){
Message = "Winner";
win = true;

}
repaint();
}
public void paint(Graphics g){
super.paint(g);
if(!win){
for(int y = 0 ; y <14 ; y++){
for(int x = 0 ; x <14 ; x++){
if(m.getMap(x,y).equals("f")){
g.drawImage(m.getFinish(),x*32,y*32,null);
}
if(m.getMap(x, y).equals("g")){
g.drawImage(m.getGrass(), x*32, y*32, null);
}
if(m.getMap(x, y).equals("w")){
g.drawImage(m.getWall(), x*32, y*32, null);
}
}
}

g.drawImage(p.getPlayer(),p.getTileX()* 32, p.getTileY() * 32,null);
}
if(win){

g.setColor(Color.GREEN);
g.setFont(font);
g.drawString(Message, 150, 200);

}


}
public class Al extends KeyAdapter{
public void keyPressed(KeyEvent e){
int keycode = e.getKeyCode();

if(keycode == KeyEvent.VK_W){
if(!m.getMap(p.getTileX(),p.getTileY()-1).equals("w")){
p.move(0,-1);
}
}
if(keycode == KeyEvent.VK_S){
if(!m.getMap(p.getTileX(),p.getTileY()+1).equals("w")){
p.move(0,1);
}
}
if(keycode == KeyEvent.VK_A){
if(!m.getMap(p.getTileX()-1,p.getTileY()).equals("w")){
p.move(-1,0);
}
}
if(keycode == KeyEvent.VK_D){
if(!m.getMap(p.getTileX()+1,p.getTileY()).equals("w")){
p.move(1,0);
}
}
}
public void keyRelased(KeyEvent e){


}
public void keyTyped(KeyEvent e){


}
}

}

map 类

package javamazegame;

import java.awt.*;
import java.io.*;
import java.util.*;
import javax.swing.*;


public class Map {

private Scanner m;

private String Map[] = new String[14];

private Image grass,
finish,
wall;


public Map(){

ImageIcon img = new ImageIcon("C://Users//Rayjay//Desktop//Assets//road.png");
grass = img.getImage();
img = new ImageIcon("C://Users//Rayjay//Desktop//Assets//wall.png");
wall = img.getImage();
img = new ImageIcon("C://Users//Rayjay//Desktop//Assets//finish.png");
finish = img.getImage();

openFile();
readFile();
closeFile();

}
public Image getGrass(){
return grass;
}
public Image getWall(){
return wall;
}
public Image getFinish(){
return finish;
}

public String getMap(int x , int y){
String index = Map[y].substring(x,x+1);
return index;
}

public void openFile(){

try{
m = new Scanner(new File("C://Users//Rayjay//Desktop//Assets//Map.txt"));
}
catch(Exception e){
System.out.println("Error Loading Map");
}
}

public void readFile(){
while(m.hasNext()){
for(int i = 0; i < 14; i++){
Map[i] = m.next();
}
}
}

public void closeFile(){
m.close();
}
}

玩家等级

package javamazegame;

import java.awt.Image ;
import javax.swing.ImageIcon;

玩家类别这是我的玩家类别 公共(public)类玩家{

    private int  tileX,tileY; 

private Image player;

public Player(){

ImageIcon img = new ImageIcon("C://Users//Rayjay//Desktop//Assets//player.png");
player = img.getImage();


tileX = 1;
tileY = 1;

}
public Image getPlayer(){
return player;

}


public int getTileX(){
return tileX;

}
public int getTileY(){
return tileY;

}

public void move(int dx,int dy){
tileX += dx;
tileY += dy;
}
}

最佳答案

您可以使用Timer 类。您可以通过多种方式使用此类。这是doc计时器

关于java - 添加时间我不知道如何添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62329527/

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