Faire un saut en java

annisseur -  
 annisseur -
Bonjour,

j'aimerais faire un petit jeu style mario en java et j'arrive à déplacer mon personnage mais je bloque lorsque il doit sauter. est-ce-que qqn peut m'aider ?
Merci

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Voici un petit code qui fait simplement ce que tu veux :

    public static void jump(JComponent container, Component component, double largeur, double hauteur, double precision, long latence)
    {
        Point init = component.getLocation();
        for (double angle=0; angle<=Math.PI; angle+=Math.PI/precision)
        {
            Point before = component.getLocation();
            component.setLocation(new Point(
                    init.x+(int) (largeur*(1-Math.cos(angle))),
                    init.y-(int) (hauteur*Math.sin(angle))));
            Point after = component.getLocation();
            
            container.paintImmediately(
                Math.min(before.x,after.x),
                Math.min(before.y,after.y),
                Math.abs(before.x-after.x)+component.getWidth(),
                Math.abs(before.y-after.y)+component.getHeight());
            
            try { Thread.sleep(latence); }
            catch (InterruptedException e) {}
        }
    }

    Exemple d'utilisation :
    public static void main(String[] args)
    {
        final JButton button = new JButton();
        button.setBounds(20,130,100,50);
        
        final JPanel panel = new JPanel();
        panel.setLayout(null);        
        panel.add(button);
        
        final JFrame frame = new JFrame();
        frame.setSize(450, 250);
        frame.add(panel);        
        
        button.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent arg0)
            {
                jump(panel,button,150,100,1000,4);
                jump(panel,button,0,100,1000,4);
                jump(panel,button,-150,100,1000,4);
            }
        });
        
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
    1
    1. annisseur
       
      je ne comprends pas comment intégrer la méthode a mon programme ça me met des syntax error partout
      0