java生成一个跳舞的人
时间: 2023-11-04 19:05:41 浏览: 30
要生成一个跳舞的人,我们需要用到图形化界面和动画效果。可以使用JavaFX技术来实现。
首先,我们需要创建一个JavaFX窗口,并添加一个Canvas作为画布。然后,我们可以使用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.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.util.Duration;
public class DancingPerson extends Application {
// 小人的坐标和大小
private static final int PERSON_X = 150;
private static final int PERSON_Y = 150;
private static final int PERSON_SIZE = 50;
// 小人的动作
private static final int ARM_MOVE = 10;
private static final int LEG_MOVE = 20;
// 小人的颜色
private static final Color COLOR = Color.BLUEVIOLET;
@Override
public void start(Stage primaryStage) throws Exception {
// 创建画布
Canvas canvas = new Canvas(400, 400);
GraphicsContext gc = canvas.getGraphicsContext2D();
// 创建小人
Person person = new Person(PERSON_X, PERSON_Y, PERSON_SIZE);
// 创建动画
Timeline timeline = new Timeline(
new KeyFrame(Duration.millis(100), event -> {
// 更新小人的动作
person.update();
// 清空画布
gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight());
// 画出小人
person.draw(gc);
})
);
timeline.setCycleCount(Animation.INDEFINITE);
timeline.play();
// 将画布添加到窗口中
StackPane root = new StackPane(canvas);
Scene scene = new Scene(root, 400, 400);
primaryStage.setScene(scene);
primaryStage.show();
}
// 小人类
private static class Person {
private int x, y, size;
private int armDelta = ARM_MOVE, legDelta = LEG_MOVE;
public Person(int x, int y, int size) {
this.x = x;
this.y = y;
this.size = size;
}
public void update() {
// 更新小人的动作
armDelta = -armDelta;
legDelta = -legDelta;
}
public void draw(GraphicsContext gc) {
// 画出小人
gc.setFill(COLOR);
gc.fillOval(x, y, size, size);
gc.fillRect(x + size / 2 - 5, y + size, 10, 20);
gc.fillRect(x, y + size / 2 - 5, 20, 10);
gc.fillRect(x + size / 2 - 5, y + size / 2 + 5, 10, 20);
gc.fillRect(x + size / 2 - 5 + armDelta, y + size / 2 - 5, 10, 20);
gc.fillRect(x + 5, y + size + legDelta, 10, 20);
gc.fillRect(x + size - 15, y + size + legDelta, 10, 20);
}
}
public static void main(String[] args) {
launch(args);
}
}
```
运行上述代码,即可看到一个跳舞的小人。