BALLS, BALLE REBONDISSANTE VERSION OBJET.

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 15 oct. 2006 à 23:11
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 29 nov. 2006 à 18:03
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/39922-balls-balle-rebondissante-version-objet

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
29 nov. 2006 à 18:03
juste un petit truc..
pour recevoir des touches, la propriété keypreview de la forme doit être à true.
sinon, la frappe de la barre ne marche pas.
si on la met à true, ça marche.. (les balles s'arrêtent)mais si on retape l'inverseur logique ne fonctionne pas..
les balles ne redémarrent pas..
??
@+
Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 3
18 oct. 2006 à 14:28
Ah oui et j'oubliais : 10/10 !
Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 3
18 oct. 2006 à 14:27
Bravo pour cette source f0xi ;). J'avais envie de m'en inspirer pour faire un casse-briques mais je n'ais plus Delphi (snif) alors si ça peut inspirer quelqu'un...

@+
Matt
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
17 oct. 2006 à 18:49
merci bidou, pourtant je l'avais fait plusieurs fois le refresh... et rien ... ça cache un probleme quelque part.
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
17 oct. 2006 à 12:39
J'ai rafraichis la mise en cache, c'est bon maintenant ;-)
Utilisateur anonyme
17 oct. 2006 à 11:49
Le zip n'est toujours pas disponible ????

Bizarre ... vous avez dit Bizarre ... comme c'est Bizarre !

@+
Cirec
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
17 oct. 2006 à 07:54
tu pense vraiment qu'animer des ellispe sur un canvas ça ferait plus de 2Mo ???!
il fait que 8Ko ...
j'ai tester en creant une autre source et un zip deja uploader et ça marche pas non plus ... :o

comprend pas ...
le zip est pourtant bon vus que j'upload correctement sur les forums et autres.
DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009
16 oct. 2006 à 17:22
Salut,
ton zip n'est pas trop gros?
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
16 oct. 2006 à 17:15
bon je retenterais l'upload ce soir vers 20-21h
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
16 oct. 2006 à 17:08
AAAARRRRRGGGGGH!

[suite de mots grossier et injurieux a propos d'ASP, du formulaire d'upload de CS et des nombreux autres bugs du site]
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
16 oct. 2006 à 16:55
c'est justement ce que j'allais faire remarquer ... esperons que ca va passer vite
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
16 oct. 2006 à 16:54
Bah, tu as dû trop le compresser, ton zip, f0xi, il a implosé en plein vol (avec tous les ballons qu'il y a dedans, bonjour les dégats, mdr)
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
16 oct. 2006 à 16:51
probleme avec l'upload du zip ... comprend pas ... le chinois du serveur doit etre en greve ... etrange.
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
16 oct. 2006 à 16:48
le zip a disparut ???!
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
16 oct. 2006 à 15:18
@cirec :
non non t'inquiete, la remarque etait plus a prendre a la rigolade ... qui aime bien chatie bien. et ce n'etait pas la pour etre ironique ou mechant ou quoique ce soit d'autre en ce sens.

mais il est etrange de constater que sur les deux source (celle-ci et celle des parasites) chez moi ça passe pas... :$
Il est vrai qu'ici, il s'agit bien d'un double buffer puisqu'on n'utilise pas de bitmap pour créer l'image. alors que dans l'autre en effet, y'a triple buffer.
mais bizarrement si je retire la methode OnPaint de la paintbox (sur parasite)... l'effet ne passe plus pareil ... ce qui serait bien serait de tester sur plusieur machine le rendus avec triple buf et double buf, il y a surrement des differences de rendus et performance selon les configuration...
j'irais meme a dire qu'il faudrait que je regarde le code de la paintbox pour voir quel mecanisme on saute si on utilise pas OnPaint et je crois (ayant deja derivé la classe PaintBox) qu'on loupe quelque chose ... reste a voir si c'est important ou pas.
Maintenant une chose est sure, des l'hors que l'on utilise un bitmap, ça mange plus de ressources meme si scanline est censé palier aux problemes de vitesse.
je repond sur l'autre source pour voir les differents problemes et solutions, mais t'inquiete, j'avais pris en compte ta remarque. Tu sais bien que j'apprecie toujours qu'on donne de meilleurs solutions et que je prend toute remarque de maniere constructive et positive.

par contre tu as 100% raison pour sincos qui est plus rapide qu'un appel a sin puis a cos.
puisque SinCos evite deux appel de fonction et evite deux allocations de resultat de fonction qui sont plus lents que des allocations var/out de procedure.
je vais de ce pas modifier la methode ComputeSPD, je ne sais pas pourquoi je ne l'ai pas fait ici.
si on peu gagner quelques cycles CPU c'est toujours cela de pris... meme si ce serat quasiment indetectable. mon CPU decole pas de 0% avec 1000 balles a animer.
maintenant tout depend des performances CPU sur les fonctions SIN et COS je pense qu'entre Intel et AMD et les differentes generations CPU le nombres de cycles doit etre different.

@japee : si le timer est a false dés le depart, c'est parce que Dam_neo a fait ce choix dans sa source et comme ma source est directement basée sur la sienne (ce sont les mêmes fichier a l'origine et pas un copier coller) le false est resté sur ma source.
mais bon ... est-ce réellement un probleme ... non c'est un choix ... comme le choix de fixer tel ou tel couleur sur un elements plutot qu'une autre. :)

@Cantador : j'ai deja penser a l'idée de collision balle/balle et ce serait effectivement interressant de l'implementer, par contre je me demande quel serat l'effet generer quand il y a beaucoup de balles dans la zone et les tests collisions risque d'augmenter considerablement la charge cpu puisqu'il faudrat tester n^n collisions a chaque passe.
mais ça peut etre un bon defi d'optimisation d'algorythme de collision.

@Dam_neo : c'etait justement le but de ma source, content que cela te plaise et que ça puisse t'aider.
Utilisateur anonyme
16 oct. 2006 à 11:47
"@Cirec :
non, desolé de te contredire mais il faut utiliser l'evenement OnPaint (de la paintbox) et
donc mettre le refresh dans le timer sinon ça clignote malgrés le doublebuffered de la fiche..."

@ F0xi : comme toujours tu t'emportes trop vite, tu ne supportes pas mes remarques ?
Dommage mais il fallait donner cette réponse dans le bon thread ...

Effectivement cette remarque était destiné a ta précédente source et non a celle-ci !
En effet sur ta précédente source tu fesais un "TrippleBuffered" complètement inutile ... et là, la solution que je t'ai donné FONCTIONNE mais tu as certainement déjà constaté cela sinon la remarque ne serait pas ici !

Alors s'il te plait, la prochaine fois, met tes remarques au bon endroit ... (ce que tu fais s'appel de la manipulation où un effet de manche où ... )
et en plus il semblerait même que tu n'ais pas saisis l'astuce ... mais bon ... chez moi ça fonctionne


Comme l'optimisation est le maitre mot ... je ne dirais que ceci :
{ SinCos is 2x faster than calling Sin and Cos separately for the same angle }

Voilà c'est claire ... non ?
je m'attend au retour de baton :)

@+
Cirec
Dam_neo Messages postés 5 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 16 octobre 2006
16 oct. 2006 à 00:06
Ben sérieux f0xi, tu peux me plagier tant que tu veux si c'est pour faire des trucs comme ça :). Je veux bien croire que pour toi c'est facil mais pour moi je trouve ça trop fort. En + grande qualité de programmeur tu commentes super bien ton code ce qui aide à la compréhension. En ce qui concerne les classes, je crois qu'il s'agit de la prog objet. Je ne l'ai pas encore abordé en cours mais au vue de ce qu'on peut en faire, je trouve ça cool d'avance. Et grace à ta source je pourrai déjà y mettre un pied dedans. :) Merci bien.
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
15 oct. 2006 à 23:39
Vraiment sympa, ces balles qui s'agitent dans tous les sens.
Le timer est d'origine à Enabled := False... why ?
Bon, j'm'en va étudier ce code de plus près, m'a l'air bigrement intéressant.
12,5/10
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
15 oct. 2006 à 23:15
la suite c'est peut-être la
gestion des collisions balle/balle..
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
15 oct. 2006 à 23:11
effet assuré et source instructif.
10/10