BILLARD EN JAVASCRIPT C'EST POSSIBLE !

jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 - 7 avril 2009 à 23:24
danBill7 Messages postés 7 Date d'inscription mardi 13 février 2018 Statut Membre Dernière intervention 26 février 2018 - 13 févr. 2018 à 18:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49749-billard-en-javascript-c-est-possible

danBill7 Messages postés 7 Date d'inscription mardi 13 février 2018 Statut Membre Dernière intervention 26 février 2018
13 févr. 2018 à 18:50
j'ai oublié de préciser qu'il faut utiliser firefox dans cet essai!
danBill7 Messages postés 7 Date d'inscription mardi 13 février 2018 Statut Membre Dernière intervention 26 février 2018
13 févr. 2018 à 18:41
merci amrounix! a partir de ton idee j'ai fait un petit jeu de billard 3 boules
qu'on peut voir en ligne sans engagement ici https://danBill7.github.io
pyros49 Messages postés 26 Date d'inscription dimanche 29 mars 2009 Statut Membre Dernière intervention 9 septembre 2013
25 févr. 2012 à 11:49
Bonjour,

je viens de faire un post : http://www.phpcs.com/forum/sujet-CHOC-ELASTIQUE-SUR-GLOBE_1574797.aspx

je suis sur un projet similaire mais sur une sphère (la terre) donc mais angles de déplacement sont des caps, je vais donc essayer de reprendre ta source pour l'appliquer à mon projet.

Est ce que tu aurais une idée ?
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
9 nov. 2011 à 02:09
Bonjour,

Comment fais-tu ta décélération des boules de billard, cela m'intéresse pour un autre projet

Merci,

JDMCreator
amrounix Messages postés 78 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 12 juillet 2010
20 avril 2009 à 14:06
HeLLo les amis ... un petit message pour vous prévenir que j'avais mis a jour mon code, avec pas mal d'amélioration :

-correction des collisions; on avait les boules qui se chevauchaient dans certains cas, le problème était du à la distance entre les boules (variable distn) explication :
b[x,y] : boule d'origine N°1, b[nx,ny] : nouvelle position
b2[x,y] : boule d'origine N°2, b2[nx,ny] : nouvelle position
la distance était calculé entre les boules b[nx,ny] & b2[nx,ny], sauf qu'on ne tennait pas compte de la position d'origine ! bref la distance² correspond à la vitesse² donc pour pallier à ce pb, j'ai fait : distn = distn - b.v² - b2.v² qui correspond au pire scénario ... Je crois que j'ai perdu des gens en route... lol

-les rebords se font par détection de croisement, entre les segements de déplacement de la boule b[x,y] à b[nx,ny] et le rebord, si ca se croise il y'a donc collision, on récupère la normale du plan de contact "p.n" et on sort son livre de physique sur la réflexion d'onde et puis voila ! lol

bon ok j'arret de vous saouler , ce qui compte c'est de pouvoir s'amuser ! En ce moment je cherche les règles du jeux de pool pour adapter le jeu avec les vrais règles ! c'est bientôt la fin ...
@karamel Messages postés 1856 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 11 juin 2024 153
12 avril 2009 à 18:49
autant pour moi sinon pas mal la nouvelle version largement plus esthétique meme si il est vrais que pour un projet en cour l'estetisme passe apres la fonctionalite en tout cas tu semble bien maitriser ton sujet du moins tu essai de faire le mieux possible
++
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
11 avril 2009 à 16:50
Je l'ai essayé avec les mêmes navigateurs/OS que la dernière fois : IE7 et Safari sur Windows XP ;)
amrounix Messages postés 78 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 12 juillet 2010
11 avril 2009 à 14:49
c'est parce que j'ai beaucoup diminué la vitesse maximale (trop vite) et augmenter les forces de frottement. Le seul souci c'est que ça dépend aussi de la vitesse de la machine, faudrait que je teste mon programme sur d'autre plateforme
Cordialement,

Selim A.
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
11 avril 2009 à 14:45
Bonjour,

Mon premier constat de ta nouvelle version est que la présentation graphique a été amélioré mais ici, le jeu est beaucoup plus lent et fonctionne au ralenti.

Est-ce normal ?

JDMCreator
amrounix Messages postés 78 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 12 juillet 2010
11 avril 2009 à 13:25
Bonjour à tous,
Je viens de mettre à jour ma source, après avoir joué plusieurs partie en vrai, j'ai placé le coefficient de frottement à 0.018, dite moi ce que vous en pensé, j'ai aussi amélioré l'image du plateau, l'image de la queue(ca va plaire à Kimjoa) augementé la taille des boules, on ne peut toujours pas rentrer les boules dans les trous parce que je n'ai pas fini d'améliorer les collisions...
pour les effets, ce sera la prochaine étape quand tout sera opérationnel !

pour info :
- le poid de boule est situé à la ligne 29 : "this.m = 4;", et le choc dépend beaucoup du rapport des masses entre les 2 boules !
- le coef de frottement, est bien par rapport à la vitesse (donc décroissance linéaire, elle aurait été logarthimique si elle était liée à l'accélération ... elle l'est mais c'est négligable)
-pr les pertes liées aux chocs, on a un dégagement de chaleur qui est quasi null !
-on peu aussi avoir une perte lié à la déformation des matériaux, mais ce n'est pas le cas ici ! lol
@karamel Messages postés 1856 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 11 juin 2024 153
11 avril 2009 à 11:07
bonjour

pour la vitesse des boules ce serait bien de donner un poids aux boules
cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014
10 avril 2009 à 15:47
j'ai mal au crane aiiee :).
En tout cas pour réviser ses math et sa physique, c'est type top !!
Je me suis renseigné un peu sur wiki sur l'algo de la queue ...
Concernant le freinage, je suis pas sur , mais plus y a de vitesse et plus y'a de frottement non? donc un systeme basé dessus serait plus réaliste... le mieux serait de choper les vrai fonction ,mais là à appliquer j'imagine po :)
Sinon lors d'une collision y'a une déperdissions d'energie dut au choc ?
Prochaine étape la rotation de la balle avec les effets ect ... bon courage ;) ?

a++
amrounix Messages postés 78 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 12 juillet 2010
9 avril 2009 à 17:09
Salut Kimjoa, pour les frictions, ca fait parti des détails que je voulais améliorer pour me rapprocher de la réalité, pour changer la resistance de freinage, il faut modifier la variable coefLin qui est à 0.005 (ligne 122) , donc à chaque boucle, la vitesse va diminier de 0.005 jusqu'à l'arrêt ! donc si on monte cette valeur, la boule freinera plus vite ! la vitesse va décroître de façon linéaire (b.v-=coefLin; ligne 275), on pourrait aussi imaginer y inclure une décroissance exponentielle (b.v*=coefMul; avec coefMul=0.9998 proche de 1) pour se rapprocher de la réalité ... bref ça c'est le freinage !
En ce qui concerne la queue de billard, c'est un code spécial killer (moi) lol ! l'astuce c'est justement de ne pas faire de div de 1px mais de n pixels avec n le diamètre du trait, avec chaque pixel du trait passant par le centre de ces div, c à dire de (x-n/2,y-n/2) à (x+n/2,y/n/2) d'où par exemple à la ligne 362 je fais un diam/2 (diam est l'epaisseur du trait) ou plutot je fait un d2 = diam>>1 ; (rotation binaire à droit de 1 qui équivaut à un math.round(diam/2); en + rapide !)
voila j'espère avoir tuer personne avec mes explications, lol

pr info : en ce mmt je bosse sur les rebonds au abord des trous en réutilisant ma méthode collisions (simulation d'un choc avec une boule à l'arrêt qui ne bougerait pas) en test ...
cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014
8 avril 2009 à 14:20
c'est vrai que c'est sympa, même si y a encore comme tu le dit des détails a peaufiner, le gros du taff y est. J'ai essayé vite fait , le gros default c'est que y a pas assé de friction , les billes restes tros longtemps en mouvement.
J'ai pas le temps de regardé le code, mais je suis intrigué du comment tu as fais la queue de billard, avec des div de 1px successif?
Sinon pk ne pas avoir fait ça en canvas , ca aurait été bien plus fluide... bon je parle pas de flash ;).
good job !! a++
amrounix Messages postés 78 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 12 juillet 2010
8 avril 2009 à 12:42
Bonjour,
Merci pour vos commentaires , actuellement je réfléchi à une méthode pour la gestion du jeu la plus light possible !
Merci JDMCreator pour ta proposition, là où j'aurais besoin d'aide c'est dans les petits détails pour améilorer le graphisme et la jouabilité c'est à dire :
-image d'une table de billard à l'échelle (avec les trou) ce sera bcp mieu que mon ptit carrée vert
-refaire les images des boules au bon diamètre par rapport à l'air de jeu(ca m'a pris 10 minutes chrono avec photoshop) et rajouter des effets d'ombre etc..
-trouver des valeurs cohérentes à la force minimim, force maximum, coefficient de freinage ... constante : dmin, dmax, fmax,coefLin et seuilStop
c'est tout ces petits détails qui prennent du temps mais qui font tout le jeu !
je vais aussi essayer d'améliorer le dessin de la queue de billard, je ne m'attendais pas à ce que l'affichage soit aussi fluide !
Utilisateur anonyme
8 avril 2009 à 11:41
Je n'ai pas encore regardé le source, mais c'est tout simplement génial.
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
7 avril 2009 à 23:24
Bonjour !

Comme ton projet Collision, cette source me fassionne et j'aimerais beaucoup aidé à l'amélioré. Par exemple, je crois qu'il serait assez simple de faire "rentrer les balles dans les trous" en intérogeant les positions des balles. Félicitation pour le travail (ça du être un grand boulot) c'est sûr que si on pourrait diriger la force du bâton.

Cordialement,

JDMCreator
Rejoignez-nous