Hallo zusammen,
ich glaub ich steh gerade etwas auf dem Schlauch und zwar kann mir jemand sagen wieso ich in meiner Main nicht auf die Methode "createGegner" aus der Klasse Gegner zugreifen kann?
Ziel wäre es mehrere Gegner zu erstellen, welche sich hin und her bewegen.
ich glaub ich steh gerade etwas auf dem Schlauch und zwar kann mir jemand sagen wieso ich in meiner Main nicht auf die Methode "createGegner" aus der Klasse Gegner zugreifen kann?
Ziel wäre es mehrere Gegner zu erstellen, welche sich hin und her bewegen.
Java:
package de.encera.gegner;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Rectangle;
import javafx.util.Duration;
public class Gegner {
//Variablen
Pane root;
private int BLOCK_SIZE = 20;
public Rectangle enemyBody;
private enum Direction{
UP, DOWN, LEFT, RIGHT
}
//private Direction direction = Direction.RIGHT;
private Timeline timelineGegner;
public Gegner(Rectangle enemyBody, Pane root, Timeline timelineGegner) {
this.enemyBody = enemyBody;
this.root = root;
this.timelineGegner = timelineGegner;
}
private Pane createGegner() {
KeyFrame keyframeGegner = new KeyFrame(Duration.seconds(0.2), new EventHandler<ActionEvent>() {
public Direction direction = Direction.RIGHT;
@Override
public void handle(ActionEvent event) {
switch (direction) {
case RIGHT:
enemyBody.setTranslateX(enemyBody.getTranslateX() + BLOCK_SIZE);
enemyBody.setTranslateY(enemyBody.getTranslateY());
break;
default:
break;
}
}
});
root.getChildren().add(enemyBody);
timelineGegner.getKeyFrames().add(keyframeGegner);
timelineGegner.setCycleCount(Timeline.INDEFINITE);
timelineGegner.play();
return root;
}
}
Java:
package de.encera.gegner;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class Main extends Application{
Pane root;
private final double BLOCK_SIZE = 20;
private final double GAME_WIDTH = 30 * BLOCK_SIZE;
private final double GAME_HEIGHT = 20 * BLOCK_SIZE;
Gegner gegner = new Gegner(new Rectangle(BLOCK_SIZE, BLOCK_SIZE), root, new Timeline());
@Override
public void start(Stage primaryStage) throws Exception {
//Pane root = new Pane();
Scene scene = new Scene(gegner.createGegner); // <----------- Funktioniert nicht
primaryStage.setScene(scene);
primaryStage.setResizable(false);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}