Foro de elhacker.net

Programación => Java => Mensaje iniciado por: cibergolen en 18 Abril 2015, 19:55 pm



Título: [Ayuda] Problemas con un juego en java
Publicado por: cibergolen en 18 Abril 2015, 19:55 pm
Buenas

Estoy comenzando con la programación de juegos en Java (Hasta llegar a Android), pero se me está resistiendo

El problema es que no me muestra el personaje, la Base me da un html, ya importé la imagen... Pero no hay forma de que aparezca el dichoso "dibujo"

He aquí el código:

Clase1:
Código
  1. package juego01;
  2.  
  3. import java.applet.Applet;
  4. import java.awt.Color;
  5. import java.awt.Frame;
  6. import java.awt.Graphics;
  7. import java.awt.Image;
  8. import java.awt.event.KeyEvent;
  9. import java.awt.event.KeyListener;
  10. import java.net.URL;
  11.  
  12. public class juego01 extends Applet implements Runnable, KeyListener {
  13.  
  14. private robot Maquina;
  15. private Image image,jugador;
  16. private Graphics second;
  17. private URL base; //Igual debes ponerle valor... por ahora vale null
  18. //Espera que reviso una cosa rapido¬_
  19.  
  20.    @Override
  21.    public void init() {
  22.  
  23.        setSize(800, 480);
  24.        setBackground(Color.green);
  25.        setFocusable(true);
  26.        addKeyListener(this);
  27.        Frame frame = (Frame) this.getParent().getParent();
  28.        frame.setTitle("Q-Bot Alpha");
  29.        jugador = getImage(base,"Nave.png");
  30.        base=getDocumentBase();
  31.        System.out.println(base);
  32.  
  33.    }
  34.  
  35.    @Override
  36.    public void start() {
  37.     Maquina = new robot();
  38.        Thread thread = new Thread(this);
  39.        thread.start();
  40.    }
  41.  
  42.    @Override
  43.    public void stop() {
  44.        // TODO Auto-generated method stub
  45.    }
  46.  
  47.    @Override
  48.    public void destroy() {
  49.        // TODO Auto-generated method stub
  50.    }
  51.  
  52.    @Override
  53.    public void run() {
  54.        while (true) {
  55.         Maquina.update();
  56.            repaint();
  57.            try {
  58.                Thread.sleep(17);
  59.            } catch (InterruptedException e) {
  60.                e.printStackTrace();
  61.            }
  62.        }
  63.    }
  64.  
  65.    public void update(Graphics g){
  66.     if(image==null){
  67.     image = createImage(this.getWidth(),this.getHeight());
  68.     second = image.getGraphics();
  69.     }
  70.  
  71.     second.setColor(getBackground());
  72.     second.fillRect(0, 0,getWidth(), getHeight());
  73.     second.setColor(getForeground());
  74.     g.drawImage(image,50,50,this);
  75.     paint(second);
  76.    }
  77.  
  78.    public void paint(Graphics g){
  79.     g.drawImage(jugador,Maquina.getPosX(),300,this);
  80.    }
  81.  
  82.    @Override
  83.    public void keyPressed(KeyEvent e) {
  84.  
  85.        switch (e.getKeyCode()) {
  86.        case KeyEvent.VK_UP:
  87.            System.out.println("Move up");
  88.            break;
  89.  
  90.        case KeyEvent.VK_DOWN:
  91.            System.out.println("Move down");
  92.            break;
  93.  
  94.        case KeyEvent.VK_LEFT:
  95.            Maquina.moveLeft();
  96.            break;
  97.  
  98.        case KeyEvent.VK_RIGHT:
  99.            Maquina.moveRight();
  100.            break;
  101.  
  102.        case KeyEvent.VK_SPACE:
  103.            System.out.println("Jump");
  104.            break;
  105.  
  106.        }
  107.  
  108.    }
  109.  
  110.    public void keyReleased(KeyEvent e) {
  111.        switch (e.getKeyCode()) {
  112.        case KeyEvent.VK_UP:
  113.            System.out.println("Stop moving up");
  114.            break;
  115.  
  116.        case KeyEvent.VK_DOWN:
  117.            System.out.println("Stop moving down");
  118.            break;
  119.  
  120.        case KeyEvent.VK_LEFT:
  121.            System.out.println("Stop moving left");
  122.            break;
  123.  
  124.        case KeyEvent.VK_RIGHT:
  125.            System.out.println("Stop moving right");
  126.            break;
  127.  
  128.        case KeyEvent.VK_SPACE:
  129.            System.out.println("Stop jumping");
  130.            break;
  131.  
  132.        }
  133.  
  134.    }
  135.  
  136.    @Override
  137.    public void keyTyped(KeyEvent e) {
  138.        // TODO
  139.  
  140.    }
  141.  
  142. }

Clase 2:
Código
  1. package juego01;
  2.  
  3. public class robot {
  4.  
  5. private int maxX = 640;
  6. private int posX = 0;
  7.  
  8. public void update(){
  9. if(posX >=maxX){
  10. posX = maxX;
  11. }
  12. if(posX <=0){
  13. posX = 0;
  14. }
  15. }
  16.  
  17. public void moveRight(){
  18. posX += 6;
  19. }
  20.  
  21. public void moveLeft(){
  22. posX -= 6;
  23. }
  24.  
  25. public int getPosX(){
  26. return posX;
  27. }
  28.  
  29. public void setPosX(int posX){
  30. this.posX=posX;
  31. }
  32. }

Un saludo, y gracias


Título: Re: [Ayuda] Problemas con un juego en java
Publicado por: Maurice_Lupin en 20 Abril 2015, 18:58 pm
Hola, no programo en android, pero si un applet, podria ser que no esta cargada la imagen, en el paint prueba pintar un texto en las coordenadas de tu personaje y asi verificas si esta cargada la imagen. Algunas veces he tenido lios por la ruta.

Saludos