1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Por que personagem se teletransporta

Olá, eu estou fazendo um joguinho simples, que o personagem se move com as teclas a e d para os lados e pula com a tecla w, e então quando ele não está correndo eu mudo o ícone para uma imagem png do personagem parado, más a minha dúvida é por que quando ele faz isso ele se teletransporta?

Meus códigos:

Editado:

package Pacote;

import java.awt.Component;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.RenderingHints;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Map;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Main extends JFrame implements ActionListener{
    int x = 0;
    int y = 0;
    public ImageIcon parado = new ImageIcon(getClass().getResource("parado.png"));
    public ImageIcon paradoinvertido = new ImageIcon(getClass().getResource("paradoinvertido.png"));
    public ImageIcon correndo = new ImageIcon(getClass().getResource("correndo.gif"));
    public ImageIcon correndoinvertido = new ImageIcon(getClass().getResource("correndoinvertido.gif"));
    public ImageIcon pulando = new ImageIcon(getClass().getResource("pulando.gif"));
    public ImageIcon pulandoinvertido = new ImageIcon(getClass().getResource("pulandoinvertido.gif"));
    public void redimensionaimagens(){
        parado.setImage(parado.getImage().getScaledInstance(150,250,Image.SCALE_DEFAULT)); 
        correndo.setImage(correndo.getImage().getScaledInstance(250, 250, Image.SCALE_DEFAULT));
        correndoinvertido.setImage(correndoinvertido.getImage().getScaledInstance(250, 250, Image.SCALE_DEFAULT));    
        pulando.setImage(pulando.getImage().getScaledInstance(190,290, Image.SCALE_DEFAULT));    

    }
    Main(){
        redimensionaimagens();
        JLabel personagem = new JLabel(parado);
        add(personagem);
         System.out.println(x);
         System.out.println(y);
         System.out.println("--------------------");
        addKeyListener(new KeyAdapter() {
             public void keyPressed(KeyEvent e) {
                    int key = e.getKeyCode();
                    if (key == KeyEvent.VK_D) {
                        x+=50;
                        personagem.setIcon(correndo);
                        personagem.setLocation(x, y);
                        System.out.println(x);
                        System.out.println(y);
                    }
                }
             public void keyReleased(KeyEvent e){
                 personagem.setIcon(parado);
                 personagem.setLocation(x,y);
                }
            });
        addKeyListener(new KeyAdapter() {
             public void keyPressed(KeyEvent e) {
                    int key = e.getKeyCode();
                    if (key == KeyEvent.VK_A) {
                        x-=50;
                        personagem.setIcon(correndoinvertido);
                        personagem.setLocation(x, y);
                        System.out.println(x);
                        System.out.println(y);
                    }
                }
            });
        addKeyListener(new KeyAdapter() {
             public void keyPressed(KeyEvent e) {
                    int key = e.getKeyCode();
                    if (key == KeyEvent.VK_W) {
                        y-=50;
                        personagem.setIcon(pulando);
                        personagem.setLocation(x, y);
                        System.out.println(x);
                        System.out.println(y);
                    }
                }

            });

        setTitle("Janela1");
         setExtendedState(JFrame.MAXIMIZED_BOTH);   
            setVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    }
public static void main(String[]args){
    new Main();
}
@Override
public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub

}
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java java8 jogos swing imagens png ou faça a sua própria pergunta.