天天看点

30分钟JAVA语言编写的时钟小游戏,解压又好玩

作者:打篮球的程序员独城人

编写一个时钟小游戏涉及创建一个可视化界面,其中时钟会显示当前时间,并且用户需要尝试在规定的时间内点击或按下按钮。让我们使用JavaFX来实现这个时钟小游戏。首先,确保你已经正确安装JavaFX,并在项目中设置好相关的依赖。

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

public class ClockGame extends Application {
    private static final int GAME_TIME_SECONDS = 10;
    private static final int BUTTON_SIZE = 100;
    private static final String BUTTON_TEXT = "Click Me!";
    private static final String TIME_FORMAT = "HH:mm:ss";
    private static final Font CLOCK_FONT = new Font(40);
    private static final Font BUTTON_FONT = new Font(20);

    private Text clockText;
    private Button clickButton;
    private int score;

    private void updateClockText() {
        SimpleDateFormat sdf = new SimpleDateFormat(TIME_FORMAT);
        clockText.setText(sdf.format(new Date()));
    }

    private void updateTimeAndScore() {
        updateClockText();
        score = 0;
    }

    @Override
    public void start(Stage primaryStage) {
        clockText = new Text();
        clockText.setFont(CLOCK_FONT);
        clockText.setFill(Color.BLACK);

        clickButton = new Button(BUTTON_TEXT);
        clickButton.setPrefSize(BUTTON_SIZE, BUTTON_SIZE);
        clickButton.setFont(BUTTON_FONT);
        clickButton.setOnAction(e -> {
            if (score > 0) {
                score--;
            }
        });

        StackPane root = new StackPane();
        root.getChildren().addAll(clockText, clickButton);
        StackPane.setAlignment(clockText, Pos.TOP_CENTER);
        StackPane.setAlignment(clickButton, Pos.BOTTOM_CENTER);

        Scene scene = new Scene(root, 300, 200);
        primaryStage.setTitle("Clock Game");
        primaryStage.setScene(scene);
        primaryStage.show();

        updateTimeAndScore();

        new Thread(() -> {
            try {
                int remainingTime = GAME_TIME_SECONDS;
                while (remainingTime >= 0) {
                    Thread.sleep(1000);
                    remainingTime--;
                    updateClockText();
                }
                score = 0;
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }).start();

        new Thread(() -> {
            try {
                Random random = new Random();
                while (true) {
                    Thread.sleep(random.nextInt(3000) + 1000); // Random time interval between 1 and 4 seconds
                    score++;
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }).start();
    }

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

在上述代码中,我们使用了JavaFX来创建一个简单的时钟小游戏。游戏界面中心有一个显示当前时间的文本,并在底部有一个按钮。游戏开始后,按钮会随机在1到4秒之间的时间间隔内变为可点击状态,玩家需要尽快点击按钮。游戏倒计时10秒,玩家的得分将在10秒内点击按钮的次数,如果玩家在10秒内未点击按钮,则得分为0。

请注意,由于本示例只是一个简单的实现,可能存在一些优化和改进的空间,比如改进随机按钮出现的时间间隔和美化界面等。希望这个示例能帮助你理解如何使用JavaFX创建时钟小游戏。

30分钟JAVA语言编写的时钟小游戏,解压又好玩

游戏页面截图

继续阅读