天天看點

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語言編寫的時鐘小遊戲,解壓又好玩

遊戲頁面截圖

繼續閱讀