Faire un saut en java

Fermé
annisseur - 20 sept. 2012 à 18:09
 annisseur - 20 sept. 2012 à 19:29
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

A voir également:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
20 sept. 2012 à 18:56
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
je ne comprends pas comment intégrer la méthode a mon programme ça me met des syntax error partout
0