• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Problem z przesuwaniem postaci JAVA

VPS Starter Arubacloud
0 głosów
149 wizyt
pytanie zadane 13 sierpnia 2018 w Java przez karoloo Użytkownik (530 p.)
zamknięte 13 sierpnia 2018 przez karoloo

Witam. Na wstępie chcę dodać że dopiero uczę się programowania w javie. Jestem w trakcie tworzenia gry i mam pewien problem. Mam przyciski jButton 3,4,5,6. Każdy z nich odpowiada za przesuwanie się postaci na mapie(mapa jest w kontenerze jPanel1). Problem jest podczas klikania tych przycisków, a dokładniej gdy je klikam z postacią(jLabel13) nic się nie dzieje. Mam przycisk testowy dodający expa jButton 1 oraz pasek z expem jProgressBar1. Nie wiem co zrobiłem źle ale żeby postać się przestawiła w pożądaną stronę muszę kliknąć jeden z przycisków do poruszania i dodawać expa. Dopiero gdy poziom postaci skoczy o 1 i pasek z expem się wyzeruje postać się przesuwa.

package mmorpg;

import java.awt.Color;
import javax.swing.UIManager;

/**
 *
 * @author Karol P.
 */
public class game1 extends javax.swing.JFrame {

    /**
     * Creates new form game1
     */

    
        public void sprawdzlvl(){
        if(s.exp>=1&s.exp<=10){
            s.lvl=1;
            s.maxexp=10;
            s.maxxe=1;
        }else if(s.exp>=11&s.exp<=25){
            s.lvl=2;
            s.maxexp=25;
            s.maxxe=10;
        }else if(s.exp>=26&s.exp<=50){
            s.lvl=3;
            s.maxexp=50;
            s.maxxe=25;
        }
        jLabel10.setText("Nick - "+String.valueOf(s.lvl)+" lvl");
        jProgressBar1.setMinimum(s.maxxe);
        jProgressBar1.setMaximum(s.maxexp);
        jProgressBar1.setValue(s.exp);
        jLabel7.setText(String.valueOf(s.sila));
        jLabel8.setText(String.valueOf(s.zrecznosc));
        jLabel9.setText(String.valueOf(s.intelekt));
        
    }
    
    public game1() {
        initComponents();
    }
    stat s=new stat();
    public int heroX=1,heroY=1;

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel11 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jProgressBar1 = new javax.swing.JProgressBar();
        jLabel7 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jButton2 = new javax.swing.JButton();
        jButton1 = new javax.swing.JButton();
        jPanel1 = new javax.swing.JPanel();
        jLabel13 = new javax.swing.JLabel();
        jLabel12 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        jButton3 = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();
        jButton5 = new javax.swing.JButton();
        jButton6 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setBackground(new java.awt.Color(0, 0, 0));
        setMaximumSize(new java.awt.Dimension(7, 537));
        setMinimumSize(new java.awt.Dimension(7, 537));
        setPreferredSize(new java.awt.Dimension(7, 537));
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jLabel11.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jLabel11.setForeground(new java.awt.Color(255, 255, 255));
        jLabel11.setText(String.valueOf(s.zloto));
        getContentPane().add(jLabel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(603, 116, 75, -1));

        jLabel10.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        jLabel10.setForeground(new java.awt.Color(240, 240, 240));
        jLabel10.setText("Nick - "+String.valueOf(s.lvl)+" lvl");
        jLabel10.setVerticalAlignment(javax.swing.SwingConstants.TOP);
        getContentPane().add(jLabel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(640, 40, 100, 30));

        jLabel9.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jLabel9.setForeground(new java.awt.Color(255, 255, 255));
        jLabel9.setText(String.valueOf(s.intelekt));
        getContentPane().add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(753, 112, -1, -1));

        jLabel8.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jLabel8.setForeground(new java.awt.Color(255, 255, 255));
        jLabel8.setText(String.valueOf(s.zrecznosc));
        getContentPane().add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(768, 99, -1, -1));

        jProgressBar1.setFont(new java.awt.Font("Tahoma", 0, 8)); // NOI18N
        jProgressBar1.setMaximum(s.maxexp);
        jProgressBar1.setMinimum(s.maxxe);
        jProgressBar1.setToolTipText(String.valueOf(s.exp)+" / "+String.valueOf(s.maxexp)
        );
        jProgressBar1.setValue(s.exp);
        getContentPane().add(jProgressBar1, new org.netbeans.lib.awtextra.AbsoluteConstraints(567, 91, 120, 14));

        jLabel7.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jLabel7.setForeground(new java.awt.Color(255, 255, 255));
        jLabel7.setText(String.valueOf(s.sila));
        getContentPane().add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(732, 85, -1, -1));

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mmorpg/border-d.png"))); // NOI18N
        jLabel1.setText("jLabel1");
        jLabel1.setMaximumSize(new java.awt.Dimension(799, 7));
        jLabel1.setMinimumSize(new java.awt.Dimension(799, 7));
        jLabel1.setPreferredSize(new java.awt.Dimension(799, 7));
        getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 30, -1, -1));

        jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mmorpg/border-l.png"))); // NOI18N
        jLabel2.setText("jLabel2");
        getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 37, 7, -1));

        jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mmorpg/border-r.png"))); // NOI18N
        jLabel3.setText("jLabel3");
        getContentPane().add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(823, 37, 6, -1));

        jLabel4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mmorpg/border-u.png"))); // NOI18N
        jLabel4.setText("jLabel4");
        getContentPane().add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 574, 799, 7));

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        jLabel5.setForeground(new java.awt.Color(240, 240, 240));
        jLabel5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mmorpg/dazed3.png"))); // NOI18N
        jLabel5.setText("Nick - "+String.valueOf(s.lvl));
        getContentPane().add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(549, 37, 274, 537));

        jButton2.setText("+ 1 LvL");
        getContentPane().add(jButton2, new org.netbeans.lib.awtextra.AbsoluteConstraints(900, 40, -1, -1));

        jButton1.setText("+ 5 EXP");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(900, 80, -1, -1));

        jPanel1.setBackground(new java.awt.Color(255, 255, 255));
        jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jLabel13.setText("hero");
        jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 170, 32, 32));
        jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));

        jLabel12.setText("jLabel12");
        jPanel1.add(jLabel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 510, 510));

        getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(37, 37, 512, 512));

        jTextField1.setText("jTextField1");
        getContentPane().add(jTextField1, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 556, 371, 19));

        jLabel6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mmorpg/bottom-bar.png"))); // NOI18N
        jLabel6.setText("jLabel6");
        getContentPane().add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(37, 549, 512, 25));

        jButton3.setText("w");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton3, new org.netbeans.lib.awtextra.AbsoluteConstraints(890, 120, 40, 40));

        jButton4.setText("a");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(850, 160, 40, 40));

        jButton5.setText("s");
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton5, new org.netbeans.lib.awtextra.AbsoluteConstraints(890, 160, 40, 40));

        jButton6.setText("d");
        jButton6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton6ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton6, new org.netbeans.lib.awtextra.AbsoluteConstraints(930, 160, 40, 40));

        pack();
    }// </editor-fold>                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        s.exp=s.exp+5;
        sprawdzlvl();
    }                                        

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        heroY=heroY-1;
        
        jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));        // TODO add your handling code here:
    }                                        

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        heroY=heroY+1;
        jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));
    }                                        

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        heroX=heroX-1;
        jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));
    }                                        

    private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        heroX=heroX+1;
        jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));
    }                                        

    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(game1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(game1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(game1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(game1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new game1().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButton6;
    private javax.swing.JLabel jLabel1;
    public javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    public javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JProgressBar jProgressBar1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration                   
}

 

komentarz zamknięcia: Problem rozwiązany
komentarz 13 sierpnia 2018 przez mbabane Szeryf (79,280 p.)
edycja 13 sierpnia 2018 przez mbabane

W sumie czemu nie używasz importów, sto razy lepiej czyta się wtedy kod, nie mówiąc o pisaniu:

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.WindowConstants;

/**
 *
 * @author Karol P.
 */
public class game1 extends JFrame {


    public void sprawdzlvl(){
        if(s.exp>=1&s.exp<=10){
            s.lvl=1;
            s.maxexp=10;
            s.maxxe=1;
        }else if(s.exp>=11&s.exp<=25){
            s.lvl=2;
            s.maxexp=25;
            s.maxxe=10;
        }else if(s.exp>=26&s.exp<=50){
            s.lvl=3;
            s.maxexp=50;
            s.maxxe=25;
        }
        jLabel10.setText("Nick - "+String.valueOf(s.lvl)+" lvl");
        jProgressBar1.setMinimum(s.maxxe);
        jProgressBar1.setMaximum(s.maxexp);
        jProgressBar1.setValue(s.exp);
        jLabel7.setText(String.valueOf(s.sila));
        jLabel8.setText(String.valueOf(s.zrecznosc));
        jLabel9.setText(String.valueOf(s.intelekt));

    }

    public game1() {
        initComponents();
    }
    stat s = new stat();
    public int heroX=1,heroY=1;


    private void initComponents() {

        jLabel11 = new JLabel();
        jLabel10 = new JLabel();
        jLabel9 = new JLabel();
        jLabel8 = new JLabel();
        jProgressBar1 = new JProgressBar();
        jLabel7 = new JLabel();
        jLabel1 = new JLabel();
        jLabel2 = new JLabel();
        jLabel3 = new JLabel();
        jLabel4 = new JLabel();
        jLabel5 = new JLabel();
        jButton2 = new JButton();
        jButton1 = new JButton();
        jPanel1 = new JPanel();
        jLabel13 = new JLabel();
        jLabel12 = new JLabel();
        jTextField1 = new JTextField();
        jLabel6 = new JLabel();
        jButton3 = new JButton();
        jButton4 = new JButton();
        jButton5 = new JButton();
        jButton6 = new JButton();

        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setBackground(new Color(0, 0, 0));
        setMaximumSize(new Dimension(7, 537));
        setMinimumSize(new Dimension(7, 537));
        setPreferredSize(new Dimension(7, 537));
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jLabel11.setFont(new Font("Tahoma", 0, 10)); // NOI18N
        jLabel11.setForeground(new Color(255, 255, 255));
        jLabel11.setText(String.valueOf(s.zloto));
        getContentPane().add(jLabel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(603, 116, 75, -1));

        jLabel10.setFont(new Font("Tahoma", 0, 18)); // NOI18N
        jLabel10.setForeground(new Color(240, 240, 240));
        jLabel10.setText("Nick - "+String.valueOf(s.lvl)+" lvl");
        jLabel10.setVerticalAlignment(javax.swing.SwingConstants.TOP);
        getContentPane().add(jLabel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(640, 40, 100, 30));

        jLabel9.setFont(new Font("Tahoma", 0, 10)); // NOI18N
        jLabel9.setForeground(new Color(255, 255, 255));
        jLabel9.setText(String.valueOf(s.intelekt));
        getContentPane().add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(753, 112, -1, -1));

        jLabel8.setFont(new Font("Tahoma", 0, 10)); // NOI18N
        jLabel8.setForeground(new Color(255, 255, 255));
        jLabel8.setText(String.valueOf(s.zrecznosc));
        getContentPane().add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(768, 99, -1, -1));

        jProgressBar1.setFont(new Font("Tahoma", 0, 8)); // NOI18N
        jProgressBar1.setMaximum(s.maxexp);
        jProgressBar1.setMinimum(s.maxxe);
        jProgressBar1.setToolTipText(String.valueOf(s.exp)+" / "+String.valueOf(s.maxexp)
        );
        jProgressBar1.setValue(s.exp);
        getContentPane().add(jProgressBar1, new org.netbeans.lib.awtextra.AbsoluteConstraints(567, 91, 120, 14));

        jLabel7.setFont(new Font("Tahoma", 0, 10)); // NOI18N
        jLabel7.setForeground(new Color(255, 255, 255));
        jLabel7.setText(String.valueOf(s.sila));
        getContentPane().add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(732, 85, -1, -1));

        jLabel1.setIcon(new ImageIcon(getClass().getResource("/mmorpg/border-d.png"))); // NOI18N
        jLabel1.setText("jLabel1");
        jLabel1.setMaximumSize(new Dimension(799, 7));
        jLabel1.setMinimumSize(new Dimension(799, 7));
        jLabel1.setPreferredSize(new Dimension(799, 7));
        getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 30, -1, -1));

        jLabel2.setIcon(new ImageIcon(getClass().getResource("/mmorpg/border-l.png"))); // NOI18N
        jLabel2.setText("jLabel2");
        getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 37, 7, -1));

        jLabel3.setIcon(new ImageIcon(getClass().getResource("/mmorpg/border-r.png"))); // NOI18N
        jLabel3.setText("jLabel3");
        getContentPane().add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(823, 37, 6, -1));

        jLabel4.setIcon(new ImageIcon(getClass().getResource("/mmorpg/border-u.png"))); // NOI18N
        jLabel4.setText("jLabel4");
        getContentPane().add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 574, 799, 7));

        jLabel5.setFont(new Font("Tahoma", 1, 18)); // NOI18N
        jLabel5.setForeground(new Color(240, 240, 240));
        jLabel5.setIcon(new ImageIcon(getClass().getResource("/mmorpg/dazed3.png"))); // NOI18N
        jLabel5.setText("Nick - "+String.valueOf(s.lvl));
        getContentPane().add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(549, 37, 274, 537));

        jButton2.setText("+ 1 LvL");
        getContentPane().add(jButton2, new org.netbeans.lib.awtextra.AbsoluteConstraints(900, 40, -1, -1));

        jButton1.setText("+ 5 EXP");
        jButton1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(900, 80, -1, -1));

        jPanel1.setBackground(new Color(255, 255, 255));
        jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jLabel13.setText("hero");
        jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 170, 32, 32));
        jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));

        jLabel12.setText("jLabel12");
        jPanel1.add(jLabel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 510, 510));

        getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(37, 37, 512, 512));

        jTextField1.setText("jTextField1");
        getContentPane().add(jTextField1, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 556, 371, 19));

        jLabel6.setIcon(new ImageIcon(getClass().getResource("/mmorpg/bottom-bar.png"))); // NOI18N
        jLabel6.setText("jLabel6");
        getContentPane().add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(37, 549, 512, 25));

        jButton3.setText("w");
        jButton3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton3, new org.netbeans.lib.awtextra.AbsoluteConstraints(890, 120, 40, 40));

        jButton4.setText("a");
        jButton4.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(850, 160, 40, 40));

        jButton5.setText("s");
        jButton5.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton5, new org.netbeans.lib.awtextra.AbsoluteConstraints(890, 160, 40, 40));

        jButton6.setText("d");
        jButton6.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                jButton6ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton6, new org.netbeans.lib.awtextra.AbsoluteConstraints(930, 160, 40, 40));

        pack();
    }// </editor-fold>

    private void jButton1ActionPerformed(ActionEvent evt) {

        s.exp=s.exp+5;
        sprawdzlvl();
    }

    private void jButton3ActionPerformed(ActionEvent evt) {
        heroY=heroY-1;

        jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));        // TODO add your handling code here:
    }

    private void jButton5ActionPerformed(ActionEvent evt) {
        heroY=heroY+1;
        jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));
    }

    private void jButton4ActionPerformed(ActionEvent evt) {
        heroX=heroX-1;
        jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));
    }

    private void jButton6ActionPerformed(ActionEvent evt) {
        heroX=heroX+1;
        jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));
    }


    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(game1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            Logger.getLogger(game1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            Logger.getLogger(game1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            Logger.getLogger(game1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new game1().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private JButton jButton1;
    private JButton jButton2;
    private JButton jButton3;
    private JButton jButton4;
    private JButton jButton5;
    private JButton jButton6;
    private JLabel jLabel1;
    public JLabel jLabel10;
    private JLabel jLabel11;
    private JLabel jLabel12;
    public JLabel jLabel13;
    private JLabel jLabel2;
    private JLabel jLabel3;
    private JLabel jLabel4;
    private JLabel jLabel5;
    private JLabel jLabel6;
    private JLabel jLabel7;
    private JLabel jLabel8;
    private JLabel jLabel9;
    private JPanel jPanel1;
    private JProgressBar jProgressBar1;
    private JTextField jTextField1;
    // End of variables declaration
}

Z czego się uczysz tej Javy bo dziwne rzeczy wykorzystujesz np.:

jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32))

Generalnie to polecę Ci chwilkę odpocząć od robienia gry i poczytać/po oglądać materiały dotyczące podstaw Java.

Napisz jeszcze, która metoda odpowiada teoretycznie za to poruszanie i za to dodawanie expa.

Używaj też bardziej znaczących nazw dla zmiennych bo sam w tym zginiesz np. zamiast jButton1 nazwij go addingExpButton, lub jPrograssBar1 - expBar.

komentarz 13 sierpnia 2018 przez karoloo Użytkownik (530 p.)
Poradziłem już sobie. Dzięki za rady i poświęcony czas ;)

1 odpowiedź

+1 głos
odpowiedź 13 sierpnia 2018 przez mbabane Szeryf (79,280 p.)
wybrane 13 sierpnia 2018 przez karoloo
 
Najlepsza

O ile to jest przykładowa metoda do poruszania:

 private void jButton3ActionPerformed(ActionEvent evt) {
        heroY=heroY-1;

        jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));        // TODO add your handling code here:
    }

to rozumiem, że to:

heroY=heroY-1;

według Ciebie załatwi przemieszczenie - to niestety nie. Jedyne co się stanie to zmieni się stan zmiennej heroY i tyle.

 

Przesuwanie JLabela w Swingu można zrobić np. tak:

import javax.swing.*;

public class SwingExample
{
    public static void main(String[] args)
    {
        JFrame frame = new JFrame("JFrame");
        frame.setSize(500, 500);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JPanel jPanel = new JPanel();
        jPanel.setLayout(null); //obowiązkowe inaczej nie będzie się dało ręcznie przypisaywać połżenia.

        JLabel jLabel = new JLabel("JLabel");
        jLabel.setBounds(20, 20, 100, 50); //tym rpzypisuje sie połozenie i rozmiar setBounds(x,y, width, height)


        JButton upButton = new JButton("W");
        upButton.setBounds(150, 250, 50, 25);
        upButton.addActionListener(e -> move(jLabel, "W")); //za pomoca lambdy przekazuje metode, ktora wykona ruch

        JButton downButton = new JButton("S");
        downButton.setBounds(150, 276, 50, 25);
        downButton.addActionListener(e -> move(jLabel, "S"));

        JButton leftButton = new JButton("A");
        leftButton.setBounds(100, 276, 50, 25);
        leftButton.addActionListener(e -> move(jLabel, "A"));

        JButton rightButton = new JButton("D");
        rightButton.setBounds(200, 276, 50, 25);
        rightButton.addActionListener(e -> move(jLabel, "D"));
        
        jPanel.add(jLabel);
        jPanel.add(upButton);
        jPanel.add(downButton);
        jPanel.add(leftButton);
        jPanel.add(rightButton);


        frame.add(jPanel);

        frame.setVisible(true);
    }

    public static void move(JLabel label, String direction)
    {
        int baseX = label.getX(); //pobieranie pozycji startowej
        int baseY = label.getY();

        int offset = 5;

        switch (direction)
        {
            case "W":
                label.setBounds(baseX, baseY - offset, label.getWidth(), label.getHeight());
                break;
            case "S":
                label.setBounds(baseX, baseY + offset, label.getWidth(), label.getHeight());
                break;
            case "A":
                label.setBounds(baseX - offset, baseY, label.getWidth(), label.getHeight());
                break;
            case "D":
                label.setBounds(baseX + offset, baseY, label.getWidth(), label.getHeight());
                break;
        }
    }
}
komentarz 13 sierpnia 2018 przez karoloo Użytkownik (530 p.)

Już sobie poradziłem z problemem. Co do twojej odpowiedzi to metoda wyżej wymieniona jednak radzi sobie z przemieszczaniem ;) Działa ona tak że po kliknięciu przycisku do heroX/Y dodawany jest lub odejmowany 1 punkt, a następnie linika 

 jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(heroX*32, heroY*32, 32, 32));

aktualizuje współrzędne jLebela odpowiadającego za postać o zmienioną wartość heroX/Y czego skutkiem jest przesunięcie tejże "postaci" w odpowiednim kierunku. Jeżeli coś jest głupie, ale działa - to wcale nie jest głupie ;)

komentarz 13 sierpnia 2018 przez mbabane Szeryf (79,280 p.)
No tak bo to ten sam obiekt, tylko, że jest to trochę według mnie wprowadzanie w błąd. Zająłem się pisaniem tego przykładu (w trakcie pisania postu) i zapomniałem wspomnieć o tym.

Podobne pytania

0 głosów
0 odpowiedzi 164 wizyt
pytanie zadane 1 sierpnia 2022 w Offtop przez lalanablanalala Bywalec (2,090 p.)
0 głosów
1 odpowiedź 606 wizyt
pytanie zadane 11 maja 2015 w Java przez Orte Nowicjusz (190 p.)
0 głosów
0 odpowiedzi 372 wizyt

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...