dedicada a jogos.
Já ensinamos a criar animações, efeitos em fontes
e objetos, movimentos em trilhas com caminho
pré-programado, contadores digitais, capturas de
coordenadas, desenhos em 3D, pausar e iniciar ciclos,
arrastar objetos dentro da tela com o mouse,
arrastar objetos com o mouse e detectar colisões, etc...
Agora vamos mostrar como arrastar objetos dentro
da tela do JavaFX, usando as teclas do teclado,
ora isto é muito usado em jogos e em breve,
ensinaremos a detectar colisões de objetos,
arrastando com as setas do teclado, e também
ensinaremos como arrastar imagens com as setas
do teclado e o mouse.
depois disto todos os que acompanharam estes posts
estarão capacitados de criar seus próprios jogos com êxito.
Veja abaixo uma imagem do programa em execução:
Veja abaixo um vídeo com o programa funcionando:
Veja abaixo o código do programa:
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.*;
import javafx.scene.input.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import java.util.ArrayList;
import javafx.scene.shape.*;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
public class PROJETO extends Application {
private static int MOVE_CIRCLE_X = 0;
private static int MOVE_CIRCLE_Y = 0;
Group root = new Group ( );
Scene scene = new Scene ( root, 600, 300 );
Canvas canvas = new Canvas ( 600, 300 );
GraphicsContext ctx = canvas.getGraphicsContext2D ( );
Circle circle_1 = new Circle ( 30 );
private ArrayList < Shape > nosObjct;
//
/////////////////////////////////////////////////////////////////////////
public void Informe ( ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.BOLD, 13 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "Por: ", 200, 230 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Samuel
Lima", 240, 230 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "sa_sp10@hotmail.com", 200, 245 );
ctx.setFill ( Color.RED );
ctx.fillText ( " MUITO
OBRIGADO", 250, 280 );
}
//
/////////////////////////////////////////////////////////////////////////
private void move_circulo ( ) {
scene.setOnKeyPressed ( new EventHandler < KeyEvent > ( ) {
@Override
public void handle ( KeyEvent event ) {
if ( event.getCode ( ) == KeyCode.RIGHT ) {
if ( MOVE_CIRCLE_X <= 250 ) {
MOVE_CIRCLE_X = MOVE_CIRCLE_X + 5;
circle_1.setTranslateX ( MOVE_CIRCLE_X );
}
} else if ( event.getCode ( ) == KeyCode.LEFT ) {
if ( MOVE_CIRCLE_X >= -250 ) {
MOVE_CIRCLE_X = MOVE_CIRCLE_X - 5;
circle_1.setTranslateX ( MOVE_CIRCLE_X );
}
} else if ( event.getCode ( ) == KeyCode.UP ) {
if ( MOVE_CIRCLE_Y >= -45 ) {
MOVE_CIRCLE_Y = MOVE_CIRCLE_Y - 5;
circle_1.setTranslateY ( MOVE_CIRCLE_Y );
}
} else if ( event.getCode ( ) == KeyCode.DOWN ) {
if ( MOVE_CIRCLE_Y <= 120 ) {
MOVE_CIRCLE_Y = MOVE_CIRCLE_Y + 5;
circle_1.setTranslateY ( MOVE_CIRCLE_Y );
}
}
}
} );
}
//
/////////////////////////////////////////////////////////////////////////
public int listaFiguras ( ) {
nosObjct = new ArrayList < > ( );
circle_1.setCenterX ( 300.0 );
circle_1.setCenterY ( 125.0 );
circle_1.setRadius ( 30.0 );
circle_1.setFill ( Color.CHOCOLATE );
nosObjct.add ( circle_1 );
move_circulo ( );
return 0;
}
//
/////////////////////////////////////////////////////////////////////////
@Override
public void start ( Stage stage ) {
stage.setTitle ( "JAVAFX -
MOVENDO OBJETO COM AS SETAS DO TECLADO" );
ctx.setStroke ( Color.GREEN );
ctx.setLineWidth ( 10.0 );
ctx.strokeRoundRect ( 5, 5, 590, 290, 5, 5 );
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 20 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "JAVAFX -
MOVENDO OBJETO COM AS SETAS DO TECLADO", 25, 40 );
listaFiguras ( );
Informe ( );
root.getChildren ( ).addAll ( canvas, circle_1 );
stage.setScene ( scene );
stage.show ( );
}
//
/////////////////////////////////////////////////////////////////////////
public static void main ( String [ ] args ) {
launch ( args );
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.