Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Je voudrais la couleur | |
| | Auteur | Message |
---|
Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Je voudrais la couleur Mer 8 Mai 2013 - 11:15 | |
| Bonjour à tous !
De temps en temps j'ai cinq minutes pour me replonger dans la programmation de mon projet de jeu à tank, dont le tracé a bien progressé grâce à vous. Comme il est en 2D je n'utilise pas de sprites.
J'ai l'intention d'ajouter des objets qui se déplacent seuls, et pour éviter les collisions je n'ai pas trouvé mieux que de tracer une ombre au sol (enfin, plutôt un cercle) de façon à prendre comme test la couleur du pixel. Horreur, malheur !!! Je n'ai pas trouvé d'instruction pour retourner les paramètres RGB d'un point !?!
Peut-être ai-je mal regardé la doc ; peut-être faudrait-il, sinon, implémenter une nouvelle fonction...
Sinon :
@Papydall je ne retrouve plus la trace du tuto 3D que j'avais (un tout petit peu) commencé à traduire. J'ai, pour une fois, passé ma clé à qqn lors d'une formation pour qu'on y copie la doc, et depuis, pfuit !!!
@Tous, j'ai qd m eu le temps de parcourir des textes vertigineux sur les programmes qui communiquent entre eux, sur un programme qui permet d'extraire les bonnes DLL de KGF pour alléger le programme etc. Mais après quelques jours, c'est dur de les retrouver !
@Gigi nous avons tous les deux la photo de Mac Gyver. Préviens si ça te gène !
En tous les cas je parcours ce forum un peu comme un roman d'aventures. Waow !!! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Je voudrais la couleur Mer 8 Mai 2013 - 11:46 | |
| Si tu fais cela dans un picture, regarde les fonctions COLOR_PIXEL_RED, COLOR_PIXEL_GREEN et COLOR_PIXEL_BLUE. Elles font exactement ce que tu cherches. Mais attention, c'est très lent de procéder ainsi. Tu devrais vraiment considérer de placer ton char dans un SPRITE et le faire évoluer dans un SCENE2D. Et là, tu peux tester aisément la collision en comparant les coordonnées des 4 coins du sprite du char avec celles des sprites des autres objets. Tu mémorises simplement toutes ces coordonnées dans un tableau à une dimension, et tu compares les coordonnées de ton char avec celles mémorisées dans le tableau, un peu comme ceci: - Code:
-
dim char%(4) ' char%(i) ' 1=coordonnée x du coin en haut à gauche du sprite du char ' 2=coordonnée x du coin en haut à gauche du sprite du char ' 3=largeur du sprite du char ' 4=hauteur du sprite du char dim sprites%(4) ' sprites%(i) ' 1=coordonnée x du coin en haut à gauche d'un sprite ' 2=coordonnée x du coin en haut à gauche d'un sprite ' 3=largeur d'un sprite ' 4=hauteur d'un sprite dim n_sprites% ' n_sprites=nombre de sprites mémorisés dans sprites%()
' Il faut savoir qu'au début, un sprite a une dimension indéfinie. ' Un sprite prend une dimension losqu'on y charge une image, ' à partir d'un fichier ou à partir d'un objet image. Il suffit donc ' de mémoriser les dimensions de l'image chargée, avec les coordonnées ' du coin en haut à gauche du sprite.
dim collision% ' collision%=numéro du sprite avec lequel le char entre en collision
' ===================================================
' test de collision sub collision() dim_local i%, x%, y%, w%, h% if n_sprites%>0 x% = char%(1) y% = char%(2) w% = char%(3) h% = char%(4) for i%=1 to n_sprites% collision% = i% if x%>=sprites%(i%,1) if x%<(sprites%(i%,1)+sprites%(i%,3)) if y%>=sprites%(i%,2) if y%<(sprites%(i%,2)+sprites%(i%,4)) exit_sub : ' le coin en haut à gauche du char a touché un sprite end_if end_if end_if end_if if (x%+w%-1)>=sprites%(i%,1) if (x%+w%-1)<(sprites%(i%,1)+sprites%(i%,3)) if y%>=sprites%(i%,2) if y%<(sprites%(i%,2)+sprites%(i%,4)) exit_sub : ' le coin en haut à droite du char a touché un sprite end_if end_if end_if end_if
if x%>=sprites%(i%,1) if x%<(sprites%(i%,1)+sprites%(i%,3)) if (y%+h%-1)>=sprites%(i%,2) if (y%+h%-1)<(sprites%(i%,2)+sprites%(i%,4)) exit_sub : ' le coin en bas à gauche du char a touché un sprite end_if end_if end_if end_if
if (x%+w%-1)>=sprites%(i%,1) if (x%+w%-1)<(sprites%(i%,1)+sprites%(i%,3)) if (y%+h%-1)>=sprites%(i%,2) if (y%+h%-1)<(sprites%(i%,2)+sprites%(i%,4)) exit_sub : ' le coin en bas à droite du char a touché un sprite end_if end_if end_if end_if
next i% end_if collision% = 0 end_sub
Dernière édition par Klaus le Mer 8 Mai 2013 - 13:29, édité 3 fois | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Je voudrais la couleur Mer 8 Mai 2013 - 12:02 | |
| Merci beaucoup Klaus !
J'ignorais l'existence de ces commandes ainsi que le EXIT_FOR... Comme je suis têtu, je continue avec mes couleurs jusqu'à ce que j'en aie assez de dessiner sur le FORM avec des formules (par exemple un zigzag prévu pour un teste de cartographie en robotique, m'inspire un très bel arbre vu de dessus...). Et comme je suis parfois prévoyant, je mets ta routine de côté bien au chaud... il est évident qu'il faudra bien qu'ensuite je passe aux sprites, j'ai quelques idées là-dessus. Merci encore !!! | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Je voudrais la couleur Mer 8 Mai 2013 - 12:05 | |
| Ça y est, j'ai commis ma première erreur d'orthographe sur le forum ! Un test, bon sang, un test, pas un teste, ni même un zeste. Désolé cher(s) lecteur(s) !!! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Je voudrais la couleur Mer 8 Mai 2013 - 12:06 | |
| Bonjour Froggy One La 2D est iciLa 3D est ici | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Je voudrais la couleur Mer 8 Mai 2013 - 12:07 | |
| EXIT_FOR ? Oups......... Désolé. Cela doit être EXIT_SUB bien sûr ! EXIT_FOR existe aussi, mais dans cette routine, l'effet ne serait pas bon... J'ai corrigé dans mon post ci-dessus ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Je voudrais la couleur Mer 8 Mai 2013 - 12:25 | |
| @ Klaus Froggy One vient de commettre sa 1ère erreur orthographique (c’est lui qui a écrit ça). Je pense qu’il commettrait d’autres ! Ça prouve qu’il est parfaitement comme tout le monde.
Dans ton code, tu sais mieux que quiconque qu’il s’agit de collision et non de collusion Heu, il manque aussi END_SUB
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Je voudrais la couleur Mer 8 Mai 2013 - 12:42 | |
| Merci, Papydall ! Attentif comme toujours. J'ai corrigé ces deux anomalies. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Je voudrais la couleur Mer 8 Mai 2013 - 13:11 | |
| Pardon Klaus, mais la sub s’appelle toujours SUB COLLUSION(). En fait tu n’as corrigé que le REM en dessus ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Je voudrais la couleur Mer 8 Mai 2013 - 13:30 | |
| Etourdi que je suis... C'est corrigé. | |
| | | Contenu sponsorisé
| Sujet: Re: Je voudrais la couleur | |
| |
| | | | Je voudrais la couleur | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |