Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javafx.application.Application;
- import javafx.stage.Stage;
- import javafx.scene.Scene;
- import javafx.scene.control.*;
- import javafx.scene.layout.Pane;
- import javafx.scene.shape.Circle;
- import javafx.animation.*;
- import javafx.util.Duration;
- public class functionalShooter extends Application {
- private String currentDirection = "W";
- public static void main(String[] args){ launch(args); }
- @Override public void start(Stage stage) throws Exception{
- Pane root = new Pane();
- Scene scene = new Scene(root, 600, 400);
- stage.setScene(scene);
- stage.setResizable(false);
- stage.show();
- Circle player = new Circle(10);
- player.setLayoutX(300);
- player.setLayoutY(200);
- Circle other = new Circle(100, 100, 10);
- root.getChildren().addAll(player, other);
- //key events
- scene.setOnKeyPressed(event -> {
- switch(event.getCode()){
- case A:
- player.setLayoutX(player.getLayoutX()-10);
- currentDirection = "A";
- break;
- case D:
- player.setLayoutX(player.getLayoutX()+10);
- currentDirection = "D";
- break;
- case W:
- player.setLayoutY(player.getLayoutY()-10);
- currentDirection = "W";
- break;
- case S:
- player.setLayoutY(player.getLayoutY()+10);
- currentDirection = "S";
- break;
- case SPACE:
- if (currentDirection.equals("D")){
- Circle newCircle = new Circle(player.getLayoutX()+10, player.getLayoutY(), 5);
- root.getChildren().add(newCircle);
- shoot(newCircle);
- }
- else if (currentDirection.equals("A")){
- Circle newCircle = new Circle(player.getLayoutX()-10, player.getLayoutY(), 5);
- root.getChildren().add(newCircle);
- shoot(newCircle);
- }
- else if (currentDirection.equals("S")){
- Circle newCircle = new Circle(player.getLayoutX(), player.getLayoutY()+10, 5);
- root.getChildren().add(newCircle);
- shoot(newCircle);
- }
- else {
- Circle newCircle = new Circle(player.getLayoutX(), player.getLayoutY()-10, 5);
- root.getChildren().add(newCircle);
- shoot(newCircle);
- }
- break;
- }
- });
- }
- private void shoot(Circle bullet){
- Timeline timeline = new Timeline();
- if (currentDirection.equals("D")){
- KeyValue start = new KeyValue(bullet.translateXProperty(), 0);
- KeyValue end = new KeyValue(bullet.translateXProperty(), 800);
- KeyFrame startF = new KeyFrame(Duration.ZERO, start);
- KeyFrame endF = new KeyFrame(Duration.seconds(10), end);
- timeline.getKeyFrames().addAll(startF, endF);
- }
- else if (currentDirection.equals("A")){
- KeyValue start = new KeyValue(bullet.translateXProperty(), 0);
- KeyValue end = new KeyValue(bullet.translateXProperty(), -800);
- KeyFrame startF = new KeyFrame(Duration.ZERO, start);
- KeyFrame endF = new KeyFrame(Duration.seconds(10), end);
- timeline.getKeyFrames().addAll(startF, endF);
- }
- else if (currentDirection.equals("S")){
- KeyValue start = new KeyValue(bullet.translateYProperty(), 0);
- KeyValue end = new KeyValue(bullet.translateYProperty(), 800);
- KeyFrame startF = new KeyFrame(Duration.ZERO, start);
- KeyFrame endF = new KeyFrame(Duration.seconds(10), end);
- timeline.getKeyFrames().addAll(startF, endF);
- }
- else{
- KeyValue start = new KeyValue(bullet.translateYProperty(), 0);
- KeyValue end = new KeyValue(bullet.translateYProperty(), -800);
- KeyFrame startF = new KeyFrame(Duration.ZERO, start);
- KeyFrame endF = new KeyFrame(Duration.seconds(10), end);
- timeline.getKeyFrames().addAll(startF, endF);
- }
- timeline.setAutoReverse(false);
- timeline.setCycleCount(1);
- timeline.play();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement