CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

printf("blabla");

Tikim
Tikim
Niveau 21
31 août 2012 à 09:01:17

Oui c'est une idée aussi, mais ça doit être plus ou moins équivalent puisque là j'ai que 4 variables. J'ai juste fait comme godrik propose, une petite boucle for qui remplace le min si tab[i] < min. Et min je l'initialise à 10'000, parce qu'il s'agit de distances en pixels dans ma fenêtre 800x600, donc j'aurai jamais plus grand que 10'000 :o)) (Maintenant je pourrais aussi dire que min = a, puis tester avec b, c et d, m'enfin...)

godrik
godrik
Niveau 30
31 août 2012 à 09:37:54

Tikim, j'ai dit ca pour te faire realiser que ca ne sert a rien de trier. Mais dans le fond tbop2 a raison. :)

"Et min je l'initialise à 10'000, parce qu'il s'agit de distances en pixels dans ma fenêtre 800x600, donc j'aurai jamais plus grand que 10'000"

Ca c'est tres moche, je cautionne pas :)

tbop2
tbop2
Niveau 10
31 août 2012 à 10:12:51

C'est equivalent dans l'algorithme lui-meme (puisque dans un tableau tu feras des min/max de proche en proche) mais ca t'oblige a faire un tableau alors que dans ton code tu n'en avais pas forcement un a l'origine.

Dans la continuite de godrik regarde du cote du header limits.h :)

Tikim
Tikim
Niveau 21
31 août 2012 à 10:24:32

Oui en effet si ça peut m'éviter de faire un tableau c'est mieux.

Godrik :d) Oui je sais :ange:

J'ai remplacé par min = a, en premier lieu. M'enfin je crois que je vais devoir virer tout ça suite à un changement majeur de conception dans mon programme... Je fais un casse-brique (en SDL) et jusque là je considérais ma balle comme un carré. Mais au niveau de la hitbox c'est vraiment moche. Donc ma balle va devenir... Un cercle :o))

Du coup les calculs sont plus les mêmes. Mais je devrai sûrement faire des recherches de min quand même.

tbop2
tbop2
Niveau 10
31 août 2012 à 11:32:55

Oui il faut faire du bounding-circle dans ton cas (c'est tres simple rassure toi). Par contre tu vas devoir faire des collisions entre bounding circle et des bounding box (ce qui est toujours simple mais un peu plus complique a gerer de maniere propre dans le code).

tbop2
tbop2
Niveau 10
31 août 2012 à 11:44:12

Concernant le sujet sinon je te conseille le meilleur cours abordable que je connaisse (et utilisant le SAT donc ils te fournissent pas non plus des algo totalement naifs) sur le sujet : http://www.metanetsoftware.com/technique/tutorialA.html

Tikim
Tikim
Niveau 21
31 août 2012 à 11:47:05

Oui j'ai aucun soucis avec la géométrie, mais j'ai un peu du mal à poser ça en code :o)) Quand il s'agit que de maths y'a pas de soucis, mais quand ça s'insère dans la logique d'un programme/jeu, là j'ai du mal.

D'ailleurs je me demandais, si je veux tester, dans un if, une égalité, faut que je simplifie ?

Exemple : ça passe "if(RAYON*RAYON == centreX*centreX + (centreY - brique->pos.y)*(centreY - brique->pos.y))" ?

Donc ici il s'agit de tester s'il y a une/deux ou aucune intersection entre le cercle et la droite horizontale qui porte la brique et mon cercle.

Tikim
Tikim
Niveau 21
31 août 2012 à 11:47:57

Merci pour le cours, je vais lire ça. J'étais plus ou moins sur le tuto des collisions AABB du sdz, mais la partie sur les cercles est pas bien grande :o))

Paulop
Paulop
Niveau 12
31 août 2012 à 11:52:02

Sinon tu peux toujours faire un carré englobant ta balle, ça sera moins précis mais pour un casse brique ça doit pouvoir passer.

Tikim
Tikim
Niveau 21
31 août 2012 à 12:42:46

C'est ce que j'ai actuellement mais c'est pas très efficace (même si je me doute bien que c'est mon code qui n'est pas assez optimisé).

Paulop
Paulop
Niveau 12
31 août 2012 à 21:01:00

Tu n'es pas content de la collision ? Ou bien ça rame ?

Si ça rame, tu peux optimiser ça, tester la collision de deux boites ça ne prend rien, par contre ce qui va péter tes perfs, c'est de faire un test de collision en brute force (tester la collision avec toutes les tuiles alors qu'elles sont à l'autre bout du jeu). Pour ça il y a des solutions simple ou plus complexe.

Si la collision te plait pas, je te conseille de chercher sur le net qqchose comme "collision Circle AABB". Par contre ça ne marchera que si les bords de la tuile sont parallèle aux axes. (AABB veut dire Axis Aligned Bouding Box)

Tikim
Tikim
Niveau 21
02 septembre 2012 à 11:02:31

Non ça rame pas trop je crois. Là où je suis pas content de la collision c'est quand la balle tape le coin d'une brique, parce qu'elle réagit comme une AABB et laisse donc des pixels de décalage.

Mais oui j'ai déjà lu pas mal de tutos sur du AABB-Circle et ça m'aide bien. Même si certains sont trop complexes.

d'ailleurs tbop2 ton lien est super intéressant, mais j'avoue ne pas avoir tout compris, j'ai un peu de mal avec l'anglais mathématique :o)) Par contre pour le rebond j'ai pas besoin de quelque chose d'autant réaliste. Je me contenterai d'inverser une vitesse suivant la face ou les deux sur les coins.

Caudheur
Caudheur
Niveau 8
04 septembre 2012 à 10:45:12

Salut à tous !

Je n'arrive pas à retrouver comment s'appelle l'opération de "dé-pointeurisation" en C++, du genre : *this

Et deuxième pan de ma question : est ce que cette opération est couteuse lors de son exécution (même de façon infime) ?

Merci !

hyrulink2
hyrulink2
Niveau 7
04 septembre 2012 à 11:27:20

Ca s'appelle un déréferencement et oui, ça a un coup, en général une instruction MOV en plus.

C'est en partie pour ça qu'on passe les types primitifs(int, char, ...) par valeur plutôt que par référence, ça permet de les avoir en registre et ça évite les déréférencements inutiles. Même si le compilateur est capable d'optimiser au final.

Caudheur
Caudheur
Niveau 8
04 septembre 2012 à 11:30:14

Ok, merci bien ! Toujours bon à savoir.

[-ArK-]
[-ArK-]
Niveau 29
04 septembre 2012 à 19:47:49

Chaud, depuis 4h je cherche pourquoi dans mon jeu quand j'appuies sur flèche du bas, flèche de droite et espace une action se déroule pas alors que tout semblait correct :hap:
...Mais en fait c'est mon clavier qui réagit pas quand on appuie sur cette combinaison de touches :noel: ça faisait pas des bruitages à une époque quand on appuyait en même temps sur des touches incompatible ? :( ça m'aurait fait gagner du temps :hap:

caelacanthe
caelacanthe
Niveau 10
04 septembre 2012 à 20:18:47

ouais, ça faisait du bruit... sur le speaker interne du pc, le truc qu'ils enlèvent tout le temps sur les pc trop récents. :hap:

phénomène de ghosting. certains claviers de luxe en sont dépourvus. :oui:

godrik
godrik
Niveau 30
04 septembre 2012 à 21:05:11

dans les trucs debiles, j'ai passer deux heures ce week end a trouver comment intercepter les evenement de relache de la souris et de son deplacement en gtk.

Faites pas de gtk les gens! C'est mauvais pour votre sante mentale.

Pseudo supprimé
Pseudo supprimé 05 septembre 2012 à 09:27:10

troll

jai taper 'gtk+ 3 mouse event' sur google le 1er lien ma donner la reponse :mort:

caelacanthe
caelacanthe
Niveau 10
05 septembre 2012 à 14:29:23

c'est ça, et tu le mets dans ton code et ça ne marche pas, bienvenue dans le monde merveilleux de la programmation. :fete: :(

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment