Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Gerer la collision entre deux balles
Darkysun Hors ligne Membre Points: 1747 Défis: 52 Message

Gerer la collision entre deux balles

Posté le 01/01/2015 18:36

Salut à tous !
J'avais déjà parlé de ce projet a Fab mais je lavais abandonné (pour je ne sais quel raison ) mais j'aimerais bien le reprendre !
Mon but etant de faire une petite lib permettant de gerer les collisions et les rebondissements entre 2 balles afin de... euh... pouvoir faire des jeux contenant des ballons facilement on va dire
En fait j'applique une formule toute simple (je bloque dès le début :boulet: ) mais je sais qu'elle ne marche pas, je sais ou ca marche pas mais je ne sais pas comment changer la formule afin de la rendre opérationnelle
le tout petit bout de code ici a pour but de detecter une collision entre deux balles :
[brown]#include [gray]"fxlib.h"[/gray][/brown]
[brown]#include [gray]"MonochromeLib.h"[/gray][/brown]
[brown]#include [gray]"stdio.h"[/gray][/brown]




[purple]int[/purple] AddIn_main(int isAppli, unsigned short OptionNum){
    [purple]int[/purple] balle2[3]={[maroon]1[/maroon], [maroon]1[/maroon], [maroon]10[/maroon]}, balle1[3]={[maroon]20[/maroon], [maroon]30[/maroon], [maroon]15[/maroon]};
    [purple]int[/purple] vecteur2_x=[maroon]1[/maroon], vecteur2_y=[maroon]1[/maroon], vecteur1_x=[maroon]1[/maroon], vecteur1_y=-1;

    Bdisp_AllClr_DDVRAM();

    [b][blue]while[/blue][/b](1){
        balle1[0]+=vecteur1_x;
        balle1[1]+=vecteur1_y;
        balle2[0]+=vecteur2_x;
        balle2[1]+=vecteur2_y;

        ML_clear_vram();
        [b][blue]if[/blue][/b](((balle1[0]-balle2[0])^2)+((balle1[1]-balle2[1])^2)<=(balle1[2]+balle2[2])^2){
            PrintMini(1, [maroon]1[/maroon], [gray]"collision"[/gray], [maroon]1[/maroon]);
         }

        ML_circle(balle1[0], balle1[1], balle1[2], [maroon]1[/maroon]);
        ML_circle(balle2[0], balle2[1], balle2[2], [maroon]1[/maroon]);
        ML_display_vram();
        Sleep(100);
    }
}



[brown]#pragma section _BR_Size[/brown]
unsigned long BR_Size;
[brown]#pragma section[/brown]


[brown]#pragma section _TOP[/brown]

[purple]int[/purple] InitializeSystem(int isAppli, unsigned short OptionNum)
{
    [b][blue]return[/blue][/b] INIT_ADDIN_APPLICATION(isAppli, OptionNum);
}

[brown]#pragma section[/brown]


voila c'est tout . Ici la premiere (donc balle1[0]) case de chaque tableau balle est sa position X, la deuxieme (balle[1]) représente son Y et balle[2] représente le rayon de la balle
Voila si vous avez un quelconque merci de me la soumettre


Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 02/01/2015 15:30 | #


Darkysun a écrit :
Oui je connais le Xor mais je ne comprends pas en quoi il est noté ^2


le Xor est noté ^

Darkysun a écrit :
après c'est peut etre plus joli et plus propre mais si ca doit rester accessible a tout le monde je pense que c'est plus compréhensible sans structures


:double facepalm: :triple facepalm: ........ :n facepalm:

Tu n'as absolument rien compris aux structures
Darkysun Hors ligne Membre Points: 1747 Défis: 52 Message

Citer : Posté le 02/01/2015 15:31 | #


Ah oui ! Merci smash c'était exactement ce que fab m'avais dit en plus x) (j'avais paumé le schéma comme un con...)
Je vais essayer de continuer tout seul à partir de ca et si jamais je n'y arrive toujours pas (ce qui arrivera probablement...) je vous exposerai mon problème merci en tout cas
Si je ne réponds pas à un post depuis trop longtemps : envoyez-moi un message pour me le rappeler !




Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 02/01/2015 15:45 | #


Les structures n'ont rien de véritablement utiles, ils n'ont pas d'utilité complexes tel que des conditions ou des fonctions,

Ils ne servent qu'à faciliter le code et à le rendre plus lisible

Ajouté le 02/01/2015 à 15:45 :
et pis,

mais si ca doit rester accessible a tout le monde


si tu veux le rendre accessible à tout le monde, les structures c'est quand même mieux


Ajouté le 02/01/2015 à 15:49 :
et si tu me répond qu'on apprend les tableaux avant les structures,

sache que quand on veut bien maîtriser le C, on va jusqu'à l'allocation dynamique
Nemhardy Hors ligne Grand maître des Traits d'Esprit Points: 1242 Défis: 54 Message

Citer : Posté le 02/01/2015 17:16 | #


Je comprends pas bien le lien entre les deux dernières phrases à vrai dire ^^°...
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 02/01/2015 18:42 | #


sur le chat, darkysun a répondu "tu sais qu'on apprend les tableaux avant les structures? :p" du coup, je lui est répondu sur son topic

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 84 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd