Processing collisions
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 33

Processing collisions



  1. #1
    Charles28

    Wink Processing collisions


    ------

    Bonjour à tous !

    Je m'appelle Charles et je suis en terminale scientifique, j'aurais besoin de votre aide concernant mon projet ISN que je dois rendre bientôt
    Je rencontre un problème au niveau des collisions :
    J'ai trois images de parachute : parachute bleu, parachute rouge, parachute vert
    Ces derniers tombent alignés (c'est à dire 3 par trois avec des coordonnées bien précises) du haut de l'écran vers le bas
    En bas il y a un camion sensé récupéré les parachute rouge et bleu
    Si il les attrape ils disparaissent mais sinon ils continuent leur chemin
    et si il attrape le parachute vert alors le parachute vert alors le jeu se stop pendant quelques secondes

    Je n'arrive pas à faire ces collisions car ce sont des collisions d'images avec toutes des x et des y différents sachant que mes parachutes descendent et que mon camion va de droite à gauche et mon but c'est que lorsque à un point défini un parachute et mon camion se rencontrent BAAAM la parachute disparaît
    est ce que vous avez quelques conseils pour me sauver ?
    Je programme sur le logiciel Processing en Java Processing

    Merciiii, j'ai hâte de pouvoir discuter de ce sujet avec vous, j'ai vraiment besoin d'aide !

    -----

  2. #2
    Charles28

    Re : Processing collisions

    J'ai déjà parcours bon nombre de pages internet pour trouver ma solution
    Mais elles mettent toutes en relation des dessins ou des mouvements de souris mais pour les images rien !
    Ce serais vraiment épic si vous avez une sollution à me proposer !
    Peut être voulez vous voir mon programme ?
    Dernière modification par Charles28 ; 26/04/2019 à 16h39. Motif: ça manquait de smiley

  3. #3
    Charles28

    Re : Processing collisions

    S'il vous plaît, j'aurais vraiment besoin de votre aide

  4. #4
    Paraboloide_Hyperbolique

    Re : Processing collisions

    Bonjour,

    Une manière simple qui pourrait fonctionner (à vous de voir si cela vous convient): encadrer les parachutes et les camions par des rectangles orientés* suivants les axes X et Y de votre écran. Quand l'aire d'intersection d'un rectangle "parachute" avec un rectangle "camion" (intersection qui est aussi un rectangle orienté suivant X et Y) est plus grand qu'un seuil donné, on considère qu'il y a "capture". Sinon, le parachute continue son chemin.

    *C'est facile à faire connaissant les coordonnées des pixels de l'objet considérés: rechercher les 4 composantes x et y minimales et maximales.

  5. A voir en vidéo sur Futura
  6. #5
    invite73192618

    Re : Processing collisions

    Citation Envoyé par Charles28 Voir le message
    Peut être voulez vous voir mon programme ?
    Aneffet. Les balises code sont [_code_]monprogramme[_/code_] sans les _.

  7. #6
    JPL
    Responsable des forums

    Re : Processing collisions

    HS pour Jiav : si tu utilises noparse /noparse tu peux faire une présentation plus propre pour montrer une balise [CODE]...[/CODE].
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  8. #7
    scroux

    Re : Processing collisions

    Une solution consiste à comparer les positions des images (parachute-camion) en vérifiant les conditions qui correspondent à une absence de collision, en ordonnées et en abscisses ; sachant que dans le cas contraire il y aura alors une collision. (Rappel important : les ordonnées sont croissantes vers le bas)

    Si y_parachute < y_toit_du_camion alors il n'y a pas collision : le parachute est encore trop haut
    Si y_parachute > y_fond_du_camion alors il n'y a pas collision : le parachute est descendu trop bas

    Si x_parachute < x_cote_gauche_du_camion alors il n'y a pas collision : le parachute est trop à gauche
    Si x_parachute > x_cote_droit_du_camion alors il n'y a pas collision : le parachute est trop à droite

    Sinon il y a alors collision...

  9. #8
    Paraboloide_Hyperbolique

    Re : Processing collisions

    C'est un cas particulier de la solution que j'ai proposée, où le seuil d'intersection vaut 1 pixel. Il n'est pas sûr qu'un tel seuil soit "satisfaisant" du point de vue de la jouabilité (cela risque d'être trop facile pour le joueur).

  10. #9
    Charles28

    Re : Processing collisions

    Bonjour et merci à tous pour vos réponses, excusez moi hier j'ai eu un empêchement, je vais étudier toutes vos réponses
    merci encore

  11. #10
    Charles28

    Re : Processing collisions

    Bonjour à tous, j'ai trouvé une autre idée comme je n'arrive vraiment pas avec les images j'aimerais tout d'abord essayer sur les rectangles, mais je n'y arrive pas non plus
    Voici mon code, qu'en pensez vous, savez vous où j'ai bien pu faire une erreur ?

    void setup() {

    fullScreen();
    }

    void draw(){

    background(165, 38, 10);
    fill(#F7230C);
    stroke(#F7230C);
    rect(0, 0, 255, 770);
    rect(1100, 0, 265, 770);
    line(538, 0, 538, 770);
    line(821, 0, 821, 770);



    fill(fillVal);
    int x=580+fillVal;
    int y = 580;
    rect(x, y, 185, 154);
    niveau_1();

    }

    int fillVal;
    void keyPressed() {

    if (key == CODED) {
    background(165, 38, 10);
    fill(#F7230C);
    stroke(#F7230C);
    rect(0, 0, 255, 770);
    rect(1100, 0, 265, 770);
    line(538, 0, 538, 770);
    line(821, 0, 821, 770);



    if (keyCode == RIGHT) {

    fillVal = fillVal+275;

    }


    else if (keyCode == LEFT) {

    fillVal = fillVal-275;

    }

    else {

    fillVal = 126;

    }

    if (fillVal > 275) {

    fillVal = 275;

    }

    if (fillVal < -275){

    fillVal = -275;

    }

    }

    }
    int a=0;
    int b=0;
    int c=0;

    int x1;
    int x2;
    int x3;

    void niveau_1(){

    collision();

    if(a>=0){



    int x1=580;
    rect(x1, a, 185, 154);
    int speed=10;
    a+=speed;


    }

    if(a>=500){
    int x2=855;

    rect(x2, b, 185, 154);
    int speed=10;
    b+=speed;

    }

    if(b>=500){
    int x3=580;

    rect(x3, c, 185, 154);
    int speed=10;
    c+=speed;

    }



    }

    //Ici je retravail donc mes collisions mais que sur le premier rectangle mais ça ne fonctionne pas
    void collision(){

    int speed =10;
    int x=580+fillVal;
    int y = 580;

    if (x1<x && y > speed){
    println("non");
    }

    if (x1>x && y < speed){
    println("non plus");
    }

    if (x1==x && y == speed){
    println("oui");
    }


    }

  12. #11
    Charles28

    Re : Processing collisions

    Lorsque je lance mon programme il me lance tout le temps le "non" alors qu'il devrait me lancer aussi le "non plus" au bout d'un moment, je ne comprend vraiment pas ce qui cloche

  13. #12
    Charles28

    Re : Processing collisions

    Je vient aussi de me rendre compte que ma collision tienne compte de la hauteur de mes images, faut que je retravaille ça mais pareil impossible de le faire fonctionner

  14. #13
    Charles28

    Re : Processing collisions


  15. #14
    LeMulet

    Re : Processing collisions

    Dans la fonction Collision(), mal nommée (vous devriez écrire TestCollision() par exemple histoire de dire ce que ça fait), vous employez une valeur FilVall, incompréhensible (employée plus haut avec la fonction Fill(FillVal)), puis vous définissez x et ne l'employez pas (vous employez x1), et vous faites des tests ésotériques (vous n'avez pas mis de commentaire pour montrer, aux autres.... et à vous-même apparemment, ce que ces tests sont censés faire).

    De plus, vous employez multes valeurs "en dur", dans des formules ou fonctions, 500, 580,185, 154, 126, 275, 255, 770, 1100, 265, 538, 821 ... dont on doit deviner la signification.

    On ne sait pas pourquoi vous jouez avec FillVal (on peut essayer de deviner...) ni pourquoi vous ajoutez speed à la valeur c , qui ne sera pas utilisée...

    Le code n'est pas indenté (chez vous il l'est peut-être), et ça rend en plus la lecture difficile (pour un code pourtant simple).
    (Pour présenter le code sur le forum, vous devez employer les balises CODE, (CODE et /CODE)).

    La première chose à faire, si vous voulez de l'aide, c'est de présenter verbalement et de manière synthétique ce que votre code est censé faire (ici on doit deviner à partir du code, qui est probablement faux... ça va être compliqué).
    Ca peut être écrit dans le code sous forme de commentaire (c'est le mieux).

    Ensuite, vous devez, dans le code présenté, ajouter des commentaires parlants, qui montrent à quelle sous-partie de votre algorithme le code correspond.
    Par exemple : "On vérifie si la position de truc-much sort de l'écran", etc. (N'écrivez bien sûr jamais, "On met la valeur bidule dans la variable truc", ou "On teste si x est plus petit que z", c'est inutile.)

    Par expérience, un code clair, constitué uniquement de commentaires, c'est 3/4 du travail de fait.
    Pour ma part, je commence toujours à écrire dans l'entête d'une fonction ce que le code va faire, AVANT MEME DE CODER.
    Si ce commentaire n'est pas clair pour vous, comment voulez-vous aller plus loin ?
    Bonjour, et Merci.

  16. #15
    Charles28

    Re : Processing collisions

    Merci pour votre réponse, je vais de ce pas faire les modifications supplémentaires et vous montrez un code plus lisible

  17. #16
    Charles28

    Unhappy Re : Processing collisions

    Voici donc mon code, mon but est de faire bouger 1 carré principal défini dans void draw dans 3 colonnes
    Puis 3 carrés tombent dans les 3 colonnes
    Je souhaiterais que lorsque mon carré principale rencontre un autre carré qu'il y est collision mais voilà impossible de le réaliser
    Voici donc mon nouveau code corrigé et plus lisible et compréhensible :

    void setup() {

    fullScreen();
    }

    void draw(){

    //Ici je dessine le fond de mon écran, ce qui le compose

    background(165, 38, 10);
    fill(#F7230C);
    stroke(#F7230C);
    rect(0, 0, 255, 770);
    rect(1100, 0, 265, 770);
    line(538, 0, 538, 770);
    line(821, 0, 821, 770);


    //Ici FillVal va me permettre d'effacer la trace de déplacement de mon carré principal tout en lui permettant de bouger, je dois vous avouez que c'est le professeur qui nous a orienté pour cette fonction et j'ai du mal à l'expliquer, mais sans elle mon carré ne peut se déplacer

    fill(fillVal);
    int x=580+fillVal;
    int y = 580;
    rect(x, y, 185, 154);
    niveau_1();

    }

    int fillVal;
    void keyPressed() {

    //Ici j'explique que à chaque fois que une flèche du clavier est touchée, le fond ce redessine afin de masquer la trace de déplacement du carré principal

    if (key == CODED) {
    background(165, 38, 10);
    fill(#F7230C);
    stroke(#F7230C);
    rect(0, 0, 255, 770);
    rect(1100, 0, 265, 770);
    line(538, 0, 538, 770);
    line(821, 0, 821, 770);

    //Ici j'affecte à x de nouvelles valeurs lui donnant des positions précises lors des déplacements donc d'action d'une flèche du clavier

    if (keyCode == RIGHT) {

    fillVal = fillVal+275;

    }


    else if (keyCode == LEFT) {

    fillVal = fillVal-275;

    }

    else {

    fillVal = 126;

    }

    if (fillVal > 275) {

    fillVal = 275;

    }

    if (fillVal < -275){

    fillVal = -275;

    }

    }

    }

    int a=0;
    int b=0;
    int c=0;

    int x1;
    int x2;
    int x3;


    void niveau_1(){
    //c'est ici que je vais appeler ma fonction TestCollision

    TestCollision();

    //ce if permet à mon premier carré de se déplacé verticalement

    if(a>=0){


    int x1=580;
    rect(x1, a, 185, 154);
    int speed=10;
    a+=speed;


    }

    if(a>=500){
    int x2=855;

    rect(x2, b, 185, 154);
    int speed=10;
    b+=speed;


    }

    //De même pour celui ci qui va se lancer lorsque b à une certaine valeur

    if(b>=500){
    int x3=580;

    rect(x3, c, 185, 154);
    int speed=10;
    c+=speed;


    }



    }


    void TestCollision(){

    int speed =10;
    int x=580+fillVal;
    int y = 580;

    //Ici je dit que si le x + sa largeur est égal à x1 et sa largeur ainsi que y+ sa hauteur == a+ sa hauteur alors il y a collision


    if ( x1+154 == x+154 && y == a){
    println("le premier carré rentre en collision");

    }

    //Ici je dit que si le x + sa largeur est égal à x2 et sa largeur ainsi que y+ sa hauteur == b+ sa hauteur alors il y a collision

    else
    if (x2+154 == x+154 && y == b){
    println("le second carré rentre en collision");
    }

    //Ici je dit que si le x + sa largeur est égal à x3 et sa largeur ainsi que y+ sa hauteur == c+ sa hauteur alors il y a collision


    else
    if (x3+154 == x+154 && y == c){
    println("le troisième carré rentre en collision");
    }

    //Dans le cas où le carré principal ne rencontre aucun carré

    else{
    println("aucune collision");
    }

    }

    Voilà voià, merci d'avance pour votre aide
    Dernière modification par Charles28 ; 04/05/2019 à 18h51. Motif: erreur couleur pour compréhension

  18. #17
    Paraboloide_Hyperbolique

    Re : Processing collisions

    Charles28:

    Comme déjà indiqué, utilise les balises CODE \CODE pour afficher du code. Sans cela, on perd l'indentation et le code devient très vite désagréable à lire.

    Concernant ton code, je te conseille de regrouper les variables globales au début du code et d'ajouter des commentaires décrivant ce qu'elles représentent.
    Au passage, il vaut mieux éviter autant que possible d'utiliser des variables globales pour communiquer des données aux fonctions. Il est hautement préférable de passer des paramètres à celles-ci pour communiquer ces informations.

    Ensuite, réfléchis bien à la manière dont tu comptes effectuer les déplacements des carrés (rectangles) et les tests de collisions. Pour le moment, il y a des incohérences entre tes commentaires et ton code comme, par exemple, ici:

    Code:
    //Ici je dit que si le x + sa largeur est égal à x1 et sa largeur ainsi que y+ sa hauteur == a+ sa hauteur alors il y a collision
    
    
    if ( x1+154 == x+154 && y == a){
    println("le premier carré rentre en collision");
    
    }
    - A quoi correspond "sa largeur" et "sa hauteur" ? La largeur (resp. hauteur) d'un rectangle correspondant à un parachute, un camion ou les deux ?
    - A quoi correspondent les variables x, y, x1 et a ? Tes commentaires ne disent rien à ce sujet. (Il y a moyen de le "deviner" en lisant ton code, mais c'est pénible à faire).
    - Ton commentaire affirme tester en second test y + "sa hauteur" et a + "sa hauteur", mais ce n'est pas ce qui est écrit dans ton code.
    - Pourquoi ajouter 154 en dur au premier test ? Si x1 + 154 == x + 154, il est clair que x1 == x. Cet ajout n'apporte rien et ne fait que rendre le test plus difficile à lire.

    Au passage, tu peux laisser tomber les "ici je dis", "ici j'explique", etc. dans tes commentaires. Un commentaire se doit d'être à la fois succinct (style télégraphique) et complet.

  19. #18
    JPL
    Responsable des forums

    Re : Processing collisions

    En plus dans la balise Code n’utilise jamais les couleurs.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  20. #19
    Charles28

    Re : Processing collisions

    j'ai utilisé les couleurs juste pour que ce soit plus clair pour vous mais je vais les retirer.


    Code:
    void setup() {
    
    fullScreen();
    }
    
    void draw(){
    
    //création fond
    
    background(165, 38, 10);
    fill(#F7230C);
    stroke(#F7230C);
    rect(0, 0, 255, 770);
    rect(1100, 0, 265, 770);
    line(538, 0, 538, 770);
    line(821, 0, 821, 770);
    
    
    //fillVal==permet mouvement camion
    
    fill(fillVal);
    
    //x = position x du camion 
    int x=580+fillVal;
    
    //y = position y du camion
    int y = 580;
    
    //taille camion taille rectangle : 185 largeur, 154 hauteur
    rect(x, y, 185, 154);
    
    niveau_1();
    
    }
    
    int fillVal;
    void keyPressed() {
    
    //si flèche pressée redessiner fond
    
    if (key == CODED) {
    background(165, 38, 10);
    fill(#F7230C);
    stroke(#F7230C);
    rect(0, 0, 255, 770);
    rect(1100, 0, 265, 770);
    line(538, 0, 538, 770);
    line(821, 0, 821, 770);
    
    //si flèche droite presser : x=580+fillVal+275
    
    if (keyCode == RIGHT) {
    
    fillVal = fillVal+275;
    
    }
    
    //si flèche gauche presser : x=580+fillVal-275
    
    else if (keyCode == LEFT) {
    
    fillVal = fillVal-275;
    
    }
    
    
    //limite de fillVal
    
    if (fillVal > 275) {
    
    fillVal = 275;
    
    }
    
    if (fillVal < -275){
    
    fillVal = -275;
    
    }
    
    }
    
    }
    
    //a = position y de parachute 1
    int a=0;
    
    //b = position y de parachute 2
    int b=0;
    
    //c = position y de parachute 3
    int c=0;
    
    //x1 = position x de parachute 1
    int x1;
    
    //x2 = position x de parachute 2
    int x2;
    
    //x3 = position x de parachute 3
    int x3;
    
    
    void niveau_1(){
    
    TestCollision();
    
    //permet faire descendre parachute 1
    
    if(a>=0){
    int x1=580;
    
    //parachute 1
    rect(x1, a, 185, 154);
    int speed=10;
    a+=speed;
    
    }
    
    //descente parachute 2
    
    if(a>=500){
    int x2=855;
    
    //parachute 2
    rect(x2, b, 185, 154);
    int speed=10;
    b+=speed;
    
    }
    
    //descente de parachute 3
    
    if(b>=500){
    int x3=580;
    
    //parachute 3
    rect(x3, c, 185, 154);
    int speed=10;
    c+=speed;
    
    }
    }
    
    
    void TestCollision(){
    
    int speed =10;
    int x=580+fillVal;
    int y = 580;
    
    //si position parachute 1 == position x camion et y camion == y parachute 1
    
    
    if ( x1 == x && y == a){
    println("le premier carré rentre en collision");
    
    }
    
    //si position parachute 2 == position x camion et y camion == y parachute 2
    
    else
    if (x2 == x && y == b){
    println("le second carré rentre en collision");
    }
    
    //si position parachute 3 == position x camion et y camion == y parachute 3
    
    else
    if (x3 == x && y == c){
    println("le troisième carré rentre en collision");
    }
    
    //pas rencontre camion/parachute
    
    else{
    println("aucune collision");
    }
    
    }
    En espérant que cette fois ci cela vous conviendra
    j'ai vraiment besoin de votre aide et il me reste peu de temps s'il vous plait
    Dernière modification par Charles28 ; 08/05/2019 à 10h54.

  21. #20
    Charles28

    Re : Processing collisions

    Vraiment je n'ai plus le temps et je n'ai pas avancée, j'ai vraiment besoin de votre aide maintenant

  22. #21
    Charles28

    Re : Processing collisions

    je suis en train d'améliorer mon programme mais toujours le même problème dans test collision

  23. #22
    Charles28

    Re : Processing collisions

    Je crois que ça fonctionne !

  24. #23
    Paraboloide_Hyperbolique

    Re : Processing collisions

    Bonjour,

    Il y a de l'amélioration. Ton dernier code est bien plus compréhensible que le premier (notamment grâce à tes commentaires).

    De ce que je vois de ton code, il ressort surtout que tu n'as pas bien compris la notion de portée de variables. Avant de continuer et afin de comprendre cette notion, lis ce cours exemple sur le sujet: https://processing.org/examples/variablescope.html


    Ton principal problème* est que tu as des variables globales et locales qui portent le même nom (à savoir x1, x2 et x3).

    La fonction niveau_1() initialise les variables locales de x1, x2 et x3, alors que la fonction TestCollision() teste les variables globales x1, x2 et x3 qui ne sont jamais initialisées. Le comportement de la fonction est alors indéfini.
    Je te conseille d'utiliser uniquement tes variables globales x1, x2, x3 et de supprimer les variables locales correspondantes.

    *Il y a quelques autres problèmes plus mineurs, mais attaquons-nous d'abord au plus important.


    Une fois cela réglé, je recommanderais d'écrire une version différente pour les tests de collision. Pour le moment, ta fonction TestCollision() teste si le sommet inférieur gauche** du rectangle associé à un camion est superposé au sommet inférieur gauche** du rectangle associé à un parachute. Du point de vue de la jouabilité cela risque d'être assez frustrant: un parachute pourrait très bien passer en plein sur un camion sans que ces deux points ne se superposent (et donc test de collision négatif). Je recommande d'utiliser la stratégie que j'ai donnée dans mon premier message.

    **Je suppose, cela pourrait être un autre sommet suivant le repère utilisé.

  25. #24
    Charles28

    Re : Processing collisions

    Bonjour ! Merci pour votre réponse ! j'ai réussi à créer mes collisions mais j'aimerais que mes collisions se aussi en largeur ainsi qu'en hauteur et non un point
    en gros que si je touche le coté droit d'un parachute qu'il me fasse une collision
    Avez vous des idées de formulations ?

    Par exemple j'ai ça :

    un rectangle1 (100, 100, 200, 200);
    et un rectangle2 (100, 100, 200, 200);

    quand le rectangle 1 rencontre le rectangle 2 quelque soit sur la hauteur ou la largeur qu'il y est collision ?

  26. #25
    Charles28

    Re : Processing collisions

    S'il vous plait j'ai vraiment besoin d'aide... mon programme disfonctionne à nouveau... je vous le renvoie..

  27. #26
    Charles28

    Re : Processing collisions

    Code:
    void setup() {
    
    fullScreen();
    }
    
    void draw(){
    
    //création fond
    
    background(165, 38, 10);
    fill(#F7230C);
    stroke(#F7230C);
    rect(0, 0, 255, 770);
    rect(1100, 0, 265, 770);
    line(538, 0, 538, 770);
    line(821, 0, 821, 770);
    
    
    //fillVal==permet mouvement camion
    
    fill(fillVal);
    
    //x = position x du camion 
    int x=580+fillVal;
    
    //y = position y du camion
    int y = 580;
    
    //taille camion taille rectangle : 185 largeur, 154 hauteur
    rect(x, y, 185, 154);
    
    niveau_1();
    
    }
    
    int fillVal;
    void keyPressed() {
    
    //si flèche pressée redessiner fond
    
    if (key == CODED) {
    background(165, 38, 10);
    fill(#F7230C);
    stroke(#F7230C);
    rect(0, 0, 255, 770);
    rect(1100, 0, 265, 770);
    line(538, 0, 538, 770);
    line(821, 0, 821, 770);
    
    //si flèche droite presser : x=580+fillVal+275
    
    if (keyCode == RIGHT) {
    
    fillVal = fillVal+275;
    
    }
    
    //si flèche gauche presser : x=580+fillVal-275
    
    else if (keyCode == LEFT) {
    
    fillVal = fillVal-275;
    
    }
    
    
    //limite de fillVal
    
    if (fillVal > 275) {
    
    fillVal = 275;
    
    }
    
    if (fillVal < -275){
    
    fillVal = -275;
    
    }
    
    }
    
    }
    
    //a = position y de parachute 1
    int a=0;
    
    //b = position y de parachute 2
    int b=0;
    
    //c = position y de parachute 3
    int c=0;
    
    //x1 = position x de parachute 1
    int x1;
    
    //x2 = position x de parachute 2
    int x2;
    
    //x3 = position x de parachute 3
    int x3;
    
    
    void niveau_1(){
    
    TestCollision();
    
    //permet faire descendre parachute 1
    
    if(a>=0){
    int x1=580;
    
    //parachute 1
    rect(x1, a, 185, 154);
    int speed=10;
    a+=speed;
    
    }
    
    //descente parachute 2
    
    if(a>=500){
    int x2=855;
    
    //parachute 2
    rect(x2, b, 185, 154);
    int speed=10;
    b+=speed;
    
    }
    
    //descente de parachute 3
    
    if(b>=500){
    int x3=580;
    
    //parachute 3
    rect(x3, c, 185, 154);
    int speed=10;
    c+=speed;
    
    }
    }
    
    int x;
    int y=580;
    void TestCollision(){
    
    
    void TestCollision(){
    
    int p;
    
    
    //si position parachute 1 == position x camion et y camion == y parachute 1
    
    
    if (x1 == x && a == y ){
    x1=1000;
    a=1000;
      p=1;
    println(p); 
    }
    
    if(a<y){
    p=0;
    println(p);
    }
    if(a>y){
    p=2;
    println(p);
    }
    
    //si position parachute 2 == position x camion et y camion == y parachute 2
    
    else
    if (x2 == x && y == b){
    println("le second carré rentre en collision");
    }
    
    //si position parachute 3 == position x camion et y camion == y parachute 3
    
    else
    if (x3 == x && y == c){
    println("le troisième carré rentre en collision");
    }
    
    //pas rencontre camion/parachute
    
    else{
    println("aucune collision");
    }
    
    }
    même quand j'évite l'obstacle il me dit qu'il y a collision...

  28. #27
    Charles28

    Re : Processing collisions

    j'ai vraiment besojn de votre aide maintenant...

  29. #28
    Charles28

    Re : Processing collisions

    S'il vous plait
    Sinon j'ai pas mon bac

  30. #29
    Charles28

    Re : Processing collisions

    je suis très sérieux

  31. #30
    JPL
    Responsable des forums

    Re : Processing collisions

    Ne t’impatiente pas, aujourd’hui c’est un jour férié.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Programmation sur processing
    Par RobertThiare dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 21/02/2018, 17h07
  2. Besoin d'aide Processing ISN
    Par nicob142 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 04/05/2017, 19h02
  3. Processing writer
    Par PheniXos7 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 11/12/2015, 23h07
  4. Word Processing,
    Par Ludwig1 dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 09/08/2015, 20h45
  5. Probleme processing
    Par aviati dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 16/03/2015, 18h49