q1:java-fxs2

package org.openjfx.javafx_maven_plugin;
 
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Group;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.input.KeyEvent;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.util.Duration;
 
import java.io.IOException;
 
/**
* JavaFX App
*/
public class App extends Application {
         private final static double height = 800;
         private final static double width = 1200;
         int ufoposx=0;
         int ufoposy=0;
 
 
    private static Scene scene;
 
    @Override
    public void start(Stage stage) throws IOException {
           Group g = new Group();
           Canvas canvas = new Canvas(width, height);
           canvas.setFocusTraversable(true);
           g.getChildren().add(canvas);
           GraphicsContext gc = canvas.getGraphicsContext2D();
           Timeline tl = new Timeline(new KeyFrame(Duration.millis(10), e -> run(gc)));
           tl.setCycleCount(Timeline.INDEFINITE);  
           tl.play();
           Scene scene = new Scene(g,width, height);
           stage.setTitle("MaleUFO");
           stage.setScene(scene);
           stage.show();         
 
           canvas.addEventHandler(KeyEvent.KEY_PRESSED, event -> {
               switch  (event.getCode()){
               case D: ufoposx+=5; break;
               case A: ufoposx-=5; break;
               case S: ufoposy+=5; break;
               case W: ufoposy-=5; break;  
               default: 
                    break;
                 }
               }
               );
 
            }
 
 
 
    private void run(GraphicsContext gc) {
           gc.clearRect(0, 0, width, height);
           gc.setStroke(Color.BLACK);
             maleufo (ufoposx, ufoposy, gc);
 
       }
 
 
 
   private void maleufo (double xUfo, double yUfo, GraphicsContext gc) {
                   gc.setStroke(Color.BLACK);
                   gc.setFill(Color.BLACK);
                   gc.fillRect(xUfo,yUfo,30,15);
               gc.strokeLine(xUfo+15,yUfo-10,xUfo+15,yUfo);
               gc.strokeLine(xUfo+10,yUfo+15,xUfo+5,yUfo+25);
               gc.strokeLine(xUfo+20,yUfo+15,xUfo+25,yUfo+25);
               }
 
    public static void main(String[] args) {
        launch();
    }
 
}
  • /var/www/infowiki/data/pages/q1/java-fxs2.txt
  • Zuletzt geändert: 2022/08/19 06:57
  • von admin03