Java设计一个会跳的心
时间: 2024-02-12 12:02:59 浏览: 68
好的,下面是一个简单的Java程序,使用JavaFX库来实现一个会跳的心:
```java
import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class JumpingHeart extends Application {
private static final int WIDTH = 800;
private static final int HEIGHT = 600;
private static final int HEART_WIDTH = 50;
private static final int HEART_HEIGHT = 50;
private Image heartImage;
private ImageView heartView;
private Timeline timeline;
@Override
public void start(Stage primaryStage) {
// 加载心形图片
heartImage = new Image("heart.png");
heartView = new ImageView(heartImage);
heartView.setFitWidth(HEART_WIDTH);
heartView.setFitHeight(HEART_HEIGHT);
// 创建一个Pane来放置心形图片
Pane root = new Pane();
root.getChildren().add(heartView);
// 创建一个Timeline来控制心形图片的运动
timeline = new Timeline(
new KeyFrame(Duration.seconds(0), event -> {
// 更新心形图片的位置和角度
double x = Math.sin(Math.toRadians(heartView.getRotate())) * 150 + WIDTH / 2;
double y = Math.cos(Math.toRadians(heartView.getRotate())) * 150 + HEIGHT / 2;
heartView.setLayoutX(x - HEART_WIDTH / 2);
heartView.setLayoutY(y - HEART_HEIGHT / 2);
heartView.setRotate(heartView.getRotate() + 1);
}),
new KeyFrame(Duration.seconds(1.0 / 60))
);
timeline.setCycleCount(Animation.INDEFINITE);
timeline.play();
// 创建场景并显示
Scene scene = new Scene(root, WIDTH, HEIGHT);
primaryStage.setScene(scene);
primaryStage.show();
}
@Override
public void stop() {
// 停止Timeline
timeline.stop();
}
public static void main(String[] args) {
launch(args);
}
}
```
在这个程序中,我们首先加载一个心形图片,然后创建一个Pane来放置这个图片。接着,我们使用JavaFX的Timeline来控制图片的运动,每个时间间隔中更新图片的位置和角度,使其看起来像是在跳动。最后,我们创建一个场景并将Pane放置在场景中,让用户可以看到这个跳动的心形图片。
阅读全文