用javaFX写一个简易的迷宫小游戏
时间: 2023-12-06 10:03:36 浏览: 40
好的,下面是一个简单的JavaFX迷宫游戏的示例代码,你可以根据自己的需求进行修改和优化:
```java
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.input.KeyEvent;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class MazeGame extends Application {
private int mazeWidth = 20;
private int mazeHeight = 20;
private int cellSize = 20;
private int playerX = 0;
private int playerY = 0;
private Rectangle[][] mazeCells;
private Group mazeGroup;
private Scene scene;
@Override
public void start(Stage primaryStage) throws Exception {
mazeGroup = new Group();
mazeCells = new Rectangle[mazeWidth][mazeHeight];
for (int i = 0; i < mazeWidth; i++) {
for (int j = 0; j < mazeHeight; j++) {
Rectangle cell = new Rectangle(i * cellSize, j * cellSize, cellSize, cellSize);
cell.setFill(Color.WHITE);
cell.setStroke(Color.BLACK);
mazeCells[i][j] = cell;
mazeGroup.getChildren().add(cell);
}
}
mazeCells[playerX][playerY].setFill(Color.GREEN);
scene = new Scene(mazeGroup, mazeWidth * cellSize, mazeHeight * cellSize);
scene.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
switch (event.getCode()) {
case UP:
movePlayer(0, -1);
break;
case DOWN:
movePlayer(0, 1);
break;
case LEFT:
movePlayer(-1, 0);
break;
case RIGHT:
movePlayer(1, 0);
break;
}
}
});
primaryStage.setScene(scene);
primaryStage.show();
}
private void movePlayer(int dx, int dy) {
int newX = playerX + dx;
int newY = playerY + dy;
if (newX >= 0 && newX < mazeWidth && newY >= 0 && newY < mazeHeight) {
if (mazeCells[newX][newY].getFill() != Color.BLACK) {
mazeCells[playerX][playerY].setFill(Color.WHITE);
playerX = newX;
playerY = newY;
mazeCells[playerX][playerY].setFill(Color.GREEN);
}
}
}
public static void main(String[] args) {
launch(args);
}
}
```
这个迷宫游戏中,通过按键控制小人在迷宫中移动,迷宫由矩形方块组成,可以通过修改迷宫的尺寸、墙壁颜色等来进行个性化的定制。