-
jez04 authored7bb16461
Player.java 1.11 KiB
package lab;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import javafx.scene.transform.Affine;
import javafx.scene.transform.Rotate;
public class Player {
private Level level;
private Point2D position;
private Point2D speed;
public Player(Level level, Point2D position, Point2D speed) {
this.level = level;
this.position = position;
this.speed = speed;
}
public void draw(GraphicsContext gc) {
gc.save();
Point2D center = position.add(10, 25);
double angle = speed.angle(1, 0);
if (speed.getY() < 0) {
angle = -angle;
}
Rotate rotateMatrix = Affine.rotate(angle, center.getX(), center.getY());
gc.setTransform(new Affine(rotateMatrix));
gc.setFill(Color.AQUA);
gc.setStroke(Color.GREEN);
gc.setLineWidth(5);
gc.fillRect(center.getX(), center.getY(), 50, 1);
gc.fillRoundRect(position.getX(), position.getY(), 20, 50, 20, 20);
gc.strokeRoundRect(position.getX(), position.getY(), 20, 50, 20, 20);
gc.restore();
}
public void simulate(double delay) {
position = position.add(speed);
speed = speed.multiply(0.998);
}
}