Commit f5d2650b by roshka

JavaCleta 1.0

parents
## Indicaciones
La carpeta java-e006 contiene la aplicacion.
El programa fue creado por Eclipse.
Para ejecutarlo, es necesario abrir la carpeta desde Eclipse.
## Controles
Los controles para mover la bicicleta son:
* Flechas del teclado: translada la bicicleta de un lugar a otro.
* Control: Mueve la bicicleta en sentido antihorario.
* Alt: Mueve la bicicleta en sentido horario.
## Observacion
La bicicleta esta a proposito limitado la zona de movimiento para aumentar el realismo que esta recorriendo en el parque.
\ No newline at end of file
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=10
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=10
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=10
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-10">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>java-e006</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
<linkedResources>
<link>
<name>src/bici.png</name>
<type>1</type>
<location>/home/hugo/Documentos/bootcamp004/Ejecicios bootcamp/05noviembre/bici.png</location>
</link>
<link>
<name>src/bici2.png</name>
<type>1</type>
<location>/home/hugo/Documentos/bootcamp004/Ejecicios bootcamp/05noviembre/bici2.png</location>
</link>
<link>
<name>src/fondo.png</name>
<type>1</type>
<location>/home/hugo/Documentos/bootcamp004/Ejecicios bootcamp/01noviembre/fondo.png</location>
</link>
</linkedResources>
</projectDescription>
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
public class Bicicleta {
private Image bicicleta;
private ImageView mostrarBicicleta;
public Bicicleta() {
this.bicicleta = new Image("bici.png",160,100,false,true);
this.mostrarBicicleta = new ImageView(bicicleta);
this.mostrarBicicleta.setRotate(0.0);
}
public void colocarMirarIzquierda(double x,double y) {
this.bicicleta = new Image("bici.png",160,100,false,true);
this.mostrarBicicleta = new ImageView(bicicleta);
this.mostrarBicicleta.setX(x);
this.mostrarBicicleta.setY(y);
}
public void colocarMirarDerecha(double x,double y) {
this.bicicleta = new Image("bici2.png",160,100,false,true);
this.mostrarBicicleta = new ImageView(bicicleta);
this.mostrarBicicleta.setX(x);
this.mostrarBicicleta.setY(y);
}
public void girar(double n) {
double rotacion = (n * 180)/Math.PI;
this.mostrarBicicleta.setRotate(rotacion);
}
public ImageView getImageView() {
return mostrarBicicleta;
}
}
import java.util.ArrayList;
import javafx.animation.AnimationTimer;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class Something extends Application{
//Variables globales a la cual vamos a trabajar
double pos_x = 500;
double pos_y = 400;
int sentido = 0;
double giro = 0.0;
public static void main(String[] args){
Application.launch(args);
}
@Override
public void start(Stage stage) {
//Preparamos el escenario
stage.setTitle("Óyeme Carlos llévame en tu Bicicleta");
Pane root = new Pane();
Scene scene = new Scene(root);
stage.setScene(scene);
//Preparamos el canvas y agregamos el canvas al escenario
Canvas canvas = new Canvas(1200,680);
//Preparamos las escuchadores del teclado, que nos serviran para mover
//la bicicleta con el teclado
ArrayList<String> entrada = new ArrayList<String>();
scene.setOnKeyPressed(
new EventHandler<KeyEvent>()
{
public void handle(KeyEvent e)
{
String codigo = e.getCode().toString();
if ( !entrada.contains(codigo) )
entrada.add( codigo );
}
});
scene.setOnKeyReleased(
new EventHandler<KeyEvent>()
{
public void handle(KeyEvent e)
{
String codigo = e.getCode().toString();
entrada.remove( codigo );
}
});
//Cargamos los dibujos al canvas
GraphicsContext gc = canvas.getGraphicsContext2D();
//Obtenemos la imagen
Image bicicleta = new Image("bici.png",160,100,false,true);
ImageView mostrarBicicleta = new ImageView(bicicleta);
mostrarBicicleta.setX(pos_x);
mostrarBicicleta.setY(pos_y);
mostrarBicicleta.setRotate(0.0);
Image fondo = new Image("fondo.png");
gc.drawImage(fondo, 0, 0, 1200, 680);
root.getChildren().addAll(canvas,mostrarBicicleta);
//Aqui es donde realizaremos la animacion
new AnimationTimer()
{
public void handle(long currentNanoTime)
{
if(entrada.contains("LEFT") && entrada.contains("DOWN") ) {
if(pos_x > 0 && pos_y <=430) {
pos_x = pos_x-0.5;
pos_y = pos_y+0.5;
sentido = 0;
giro = Math.PI/4;
}
}else if(entrada.contains("RIGHT") && entrada.contains("DOWN")) {
if(pos_x <= 1060 && pos_y <=430) {
pos_x = pos_x+0.5;
pos_y = pos_y+0.5;
sentido = 1;
giro = -Math.PI/4;
}
}else if(entrada.contains("UP") && entrada.contains("LEFT")) {
if(pos_x<=1060 && pos_x >= 0 && pos_y >=150) {
pos_x = pos_x-0.5;
pos_y = pos_y-0.5;
sentido = 0;
giro = -Math.PI/4;
}
}else if(entrada.contains("UP") && entrada.contains("RIGHT")) {
if(pos_x <= 1060 && pos_y >=150) {
pos_x = pos_x+0.5;
pos_y = pos_y-0.5;
sentido = 1;
giro = Math.PI/4;
}
}else if(entrada.contains("UP")) {
if(pos_y>=150) {
pos_y = pos_y-0.5;
if(sentido == 0) {
giro = -Math.PI/2;
}else {
giro = Math.PI/2;
}
}
}else if(entrada.contains("DOWN")) {
if(pos_y<=430) {//580
pos_y = pos_y+0.5;
giro = Math.PI/2;
}
}else if(entrada.contains("LEFT")) {
if(pos_x>=0) {
pos_x = pos_x-0.5;
sentido = 0;
giro = 0.0;
}
}else if(entrada.contains("RIGHT")) {
if(pos_x<=1060) {
pos_x = pos_x+0.5;
sentido = 1;
giro = 0.0;
}
}else if(entrada.contains("CONTROL")) {
mostrarBicicleta.setRotate(mostrarBicicleta.getRotate()-0.5);
}else if(entrada.contains("ALT")) {
mostrarBicicleta.setRotate(mostrarBicicleta.getRotate()+0.5);
}
double girar = (giro * 180) / Math.PI;
mostrarBicicleta.setX(pos_x);
mostrarBicicleta.setY(pos_y);
gc.drawImage(fondo, 0, 0, 1200, 680);
gc.fillText("Controles:\n" +
"Control: giro antihorario\n" +
"Alt: giro horario\n"
+ "Fechas del teclado: Mueve a la bicicleta", 300, 600);
}
}.start();
stage.show();
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment