Something.java 3.78 KB
Newer Older
Pedro Rolon committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.ArcType;
import javafx.stage.Stage;
import java.io.FileInputStream;
import java.io.FileNotFoundException; 
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;  
import Bicicleta;

public class Something extends Application
{
    public static void main(String[] args)
    {
        Application.launch(args);
    }

    @Override
    public void start(Stage stage)
    {
        Canvas canvas = new Canvas(400, 400);
        GraphicsContext gc = canvas.getGraphicsContext2D();
        gc.setLineWidth(2.0);

        Bicicleta bicicleta = new Bicicleta();

        

        mover(gc, bicicleta, 50);
        mover(gc, bicicleta, 50, 1.5708);
        mover(gc, bicicleta, 50, 0);
        mover(gc, bicicleta, 50, 1.5708);
        mover(gc, bicicleta, 50, 0);
        mover(gc, bicicleta, 50, 1.5708); 
        mover(gc, bicicleta, 50, 3.14159);
        mover(gc, bicicleta, 25, 4.71239);
        mover(gc, bicicleta, 100, 0.523599);
        mover(gc, bicicleta, 100, 5.23599);



        //gc.strokeLine(200, 50, 300, 50);
        //gc.strokeLine(0, 0, 300, 50);
        
        
        try{
            //FileInputStream inputstream = new FileInputStream("file:javacleta.png");
            FileInputStream inputstream = new FileInputStream("javacleta.png");
            //se setea el tamaño de la imagen!
            Image img = new Image(inputstream, 50, 50, false, false);
            //gc.drawImage(img, 0, 0);
            //es 350 menos porque se toma en cuenta el tamaño de la imagen!
            gc.drawImage(img, bicicleta.x, 350-bicicleta.y);
        }catch(FileNotFoundException e){
            System.out.println("Ocurió un error en la carga de imagen!");
            System.out.println(e.getMessage());
        }catch(Exception e){
            System.out.println("error: no se pudo cargar la imagen");
            System.out.println(e.getMessage());
        }
        

        Pane root = new Pane();
        root.setStyle("-fx-padding: 10;" +
        "-fx-border-style: solid inside;" +
        "-fx-border-width: 2;" +
        "-fx-border-insets: 5;" +
        "-fx-border-radius: 5;" +
        "-fx-border-color: blue;");

        root.getChildren().add(canvas);

        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.setTitle("Óyeme Carlos llévame en tu Bicicleta");
        stage.show();
    } 

    //Mueve la bicicleta y dibuja su recorrido
    //Recibe como parámetro la distancia y dirección de la bicicleta
    private void mover(GraphicsContext gc, Bicicleta bicicleta, double distancia, double direccion){
        double xInicial = 10+bicicleta.x;
        //El 400 se le resta para que aparezca hacia abajo, pues las coordenadas están invertidas
        double yInicial = 400-bicicleta.y;
        
        bicicleta.girar(direccion);
        bicicleta.avanzar(distancia);

        double xFinal = 10+bicicleta.x;
        double yFinal = 400-bicicleta.y;

        gc.strokeLine(xInicial, yInicial, xFinal, yFinal);
        System.out.println(bicicleta.x+" "+ bicicleta.y+" elo");

    }

    //Mueve la bicicleta y dibuja su recorrido
    //Recibe como parámetro solo la distancia
    //Avanza en la dirección que ya tenía
    private void mover(GraphicsContext gc, Bicicleta bicicleta, double distancia){
        double xInicial = 10+bicicleta.x;
        double yInicial = 400-bicicleta.y;

        bicicleta.avanzar(distancia);

        double xFinal = 10+bicicleta.x;
        double yFinal = 400-bicicleta.y;

        gc.strokeLine(xInicial, yInicial, xFinal, yFinal);
        System.out.println(bicicleta.x+" "+ bicicleta.y+"alo");

    }
    
}