我目前正在尝试为我的学校项目制作类似于osu!的节奏游戏。我希望能够让我的圈子(图像)出现在我选择的某些时间点上。我目前有一个动画计时器设置和随机显示的圆圈:
new AnimationTimer() {
public void handle(long currentNanoTime) {
// Clear the canvas
Color black = Color.web("#000000", 1.0);
Color white = Color.web("#FFFFFF", 1.0);
//bkg
gc.drawImage(bkg, 0, 0);
//play feild marker
gc.setStroke(white);
gc.strokeRect(200, 22, 877, 683);
gc.setFill(Color.WHITE);
String pointsText = "Points: " + points.value;
gc.fillText(pointsText, 10, 470);
String comboText = "Combo: " + combo.value;
gc.fillText(comboText, 340, 470);
gc.drawImage(circle,//displays the circle
targetData.getX() - targetData.getRadius(),
targetData.getY() - targetData.getRadius());
}
我的鼠标事件是这样完成的:
theScene.setOnMouseClicked(
new EventHandler<MouseEvent>() {
public void handle(MouseEvent e) {
if (targetData.containsPoint(e.getX(), e.getY())) {
//Min + (int)(Math.random() * ((Max - Min) + 1))
double x = 275 + (int) (Math.random() * ((1000 - 275) + 1));
double y = 100 + (int) (Math.random() * ((625 -100) + 1));
targetData.setCenter(x, y);
mediaPlayer.play();
combo.value++;
points.value += 100;
mediaPlayer.seek(Duration.ZERO);
} else {
combo.value = 0;
}
}
});
目前圈子只有在点击时才会消失。我试图让我的圈子在我选择的时间自动出现,并在一段时间后消失。我设置了动画计时器,但我没有领先如何开始计时。