import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.stage.Stage; import javafx.scene.canvas.*; import javafx.scene.control.*; import javafx.scene.canvas.GraphicsContext; import javafx.scene.paint.Color; import java.lang.Thread; import javafx.animation.AnimationTimer; import javafx.scene.input.*; import javafx.event.*; import javafx.scene.input.KeyCodeCombination; /** * * Beschreibung * * @version 1.0 vom 19.11.2024 * @author */ public class game extends Application { // Anfang Attribute public int gameWidth = 1000; public int gameHeight = 720; private AnimationTimer timer; private int X = 0; private Canvas main = new Canvas(); // Ende Attribute public void start(Stage primaryStage) { Pane root = new Pane(); Scene scene = new Scene(root, gameWidth, gameHeight); // Anfang Komponenten main.setLayoutX(0); main.setLayoutY(0); main.setWidth(gameWidth); main.setHeight(gameHeight); main.setOnKeyPressed( (event) -> {main_KeyPressed(event);} ); root.getChildren().add(main); main.setOnMouseClicked( (event) -> {main_MouseClicked(event);} ); // Ende Komponenten primaryStage.setOnCloseRequest(e -> System.exit(0)); primaryStage.setTitle("game"); primaryStage.setScene(scene); primaryStage.show(); timer = new TimerMethod(); timer.start(); draw(main.getGraphicsContext2D()); } // end of public game // Anfang Methoden public static void main(String[] args){ launch(args); // end of while } // end of main public void draw(GraphicsContext context) { context.setFill(Color.BLUE); context.fillRect(X,0,X+100,100); context.clearRect(0,0,gameWidth,gameHeight); } public void main_MouseClicked(MouseEvent evt) { X+=10; } // end of main_MouseClicked public void main_KeyPressed(KeyEvent evt) { if(evt.getCode() == KeyCode.ENTER) { timer.stop(); } } // end of main_KeyPressed // Ende Methoden public class TimerMethod extends AnimationTimer { @Override public void handle(long now) { mainLoop(); } } public void mainLoop() { draw(main.getGraphicsContext2D()); } } // end of class game