Hola a todos, estoy empezando ahora con JAVA en visual studio.. y quería saber con que código podría mover horizontal o verticalmente un objeto.. se entiende que controlado con el teclado redefiniendolo previamente con cursor o teclas.
supongo que alguien ha preguntado sobre esto, pero quizá a otro nivel de dificultad.. un saludo y gracias a todos
:-(
Ni idea! tendrías que preguntar en el foro de java!
No sé Java, pero te puedo decir la lógica que usaría y tú ya ahí lo conviertes a código :silbar:
Coges el objeto, cambias su posición X (o Y) sumándole 1 cada 0.25s y ya. Ahora pruebo en js y te digo qué tal va la animación
Edito: va algo rapidito, puedes probar a poner la animación en 0.125s o algo así y ya, no es nada complicado
He hecho algo parecido hace poco:
package juego;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Juego extends JPanel {
int x = 100, y = 100;
public Juego() {
addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
//
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_A){
x--;
}if(e.getKeyCode() == KeyEvent.VK_D){
x++;
}if(e.getKeyCode() == KeyEvent.VK_W){
y--;
}if(e.getKeyCode() == KeyEvent.VK_S){
y++;
}
}
});
setFocusable(true);
}
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setColor(Color.red);
g2d.fillRect(x, y, 10, 10);//pinta un cuadrado rojo
}
public static void main(String[] args) {
JFrame frame = new JFrame();
Juego game = new Juego();
frame.add(game);
frame.setSize(300, 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
while (true) { //bucle de juego
game.repaint();
try {
Thread.sleep(15);
} catch (InterruptedException ex) {
}
}
}
}