IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SFML Discussion :

Balle qui ne bouge que si ej bouge la souris


Sujet :

SFML

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Balle qui ne bouge que si ej bouge la souris
    Bonjour,
    Alors que je commence la SFML, j'ai debutais en ayant l'idée de programmer un PONG Mais voilà que je bloque dejà !!
    J'essais de faire bouger une balle (tant que celle ci n'a pas toucher le joueur1, elle bouge), mais voila que cela ne marche pas, la balle ne bouge pas, en faite elle bouge uniquement si je bouge la souris ou bien si j'appuie sur une touche du clavier, elle ne bouge pas automatiquement ...

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    #include <SFML/Graphics.hpp>
    #include<iostream>
     
    int main()
    {
        sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!",sf::Style::Fullscreen);
        window.setFramerateLimit(60);
     
        sf::RectangleShape joueur1(sf::Vector2f(20, 100));
        joueur1.setFillColor(sf::Color::Green);
        joueur1.setPosition(10, 50);
        sf::RectangleShape joueur2(sf::Vector2f(20, 100));
        joueur2.setFillColor(sf::Color::Red);
        joueur2.setPosition(1500,10);
        sf::CircleShape balle(5);
        balle.setFillColor(sf::Color::Blue);
        balle.setPosition(1450,10);
     
     
     
     
        while (window.isOpen())
        {
            sf::Event event;
            while (window.pollEvent(event))
            {
     
     
                if(sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
                {
                    window.close();
                }
                if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
                {
     
                    joueur1.move(0,15);
                }
                if(sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
                {
                    joueur1.move(0,-15);
                }
                if (sf::Keyboard::isKeyPressed(sf::Keyboard::D))
                {
     
                    joueur2.move(0,15);
                }
                if(sf::Keyboard::isKeyPressed(sf::Keyboard::U))
                {
                    joueur2.move(0,-15);
                }
                sf::FloatRect joueur1Box = joueur1.getGlobalBounds();
                sf::FloatRect balleBox = balle.getGlobalBounds();
                sf::FloatRect joueur2Box = joueur2.getGlobalBounds();
     
     
                if (!joueur1Box.intersects(balleBox))
                {
                    balle.move(-1,0);
                }
     
     
     
     
     
            }
     
     
     
            window.clear();
            window.draw(joueur1);
            window.draw(joueur2);
            window.draw(balle);
            window.display();
        }
     
     
        return 0;
    }

    Merci debien vouloir m'expliquer pourquoi cela ne marche pas...
    merci d'avance
    Bonne journée

  2. #2
    Membre émérite Avatar de Cirrus Minor
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2014
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2014
    Messages : 953
    Points : 2 615
    Points
    2 615
    Par défaut
    C'est parce que tu modifies la position de ta balle dans ta boucle d’événements !

    Tu dois placer ton balle.move en dehors de la boucle d’événements, mais dans la boucle de jeu.
    Avant le "clear", par exemple.

Discussions similaires

  1. Empecher que le curseur bouge quand on écrit dans une textbox
    Par fandeonepiece2 dans le forum Cpcdos
    Réponses: 3
    Dernier message: 12/11/2014, 19h16
  2. Réponses: 2
    Dernier message: 23/02/2010, 16h29
  3. Réponses: 3
    Dernier message: 21/01/2004, 08h47
  4. Fonction qui s'active lorsqu'un Form bouge
    Par Xavier dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/05/2003, 12h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo