| Collision imprécise | |
|
+3Devil37 rainbow-eagle morgan 7 participants |
Auteur | Message |
---|
morgan Utilisateur confirmé: Rang *****
Messages : 1626 Localisation : Montpellier
| Sujet: Collision imprécise Mer 9 Juil 2008 - 9:02 | |
| bonjour, dans l'event collision with Sol dans ma balle de fusil, je dois executer une action...mais celle la s'exécute un step avant la collision, donc a 40 pixel de la collision, vu que la vitesse de mon sprite est regler a 40 speed! comment faire pour que mon sprite prenne tout le trajet? |
|
| |
rainbow-eagle Débutant
Messages : 19 Projet Actuel : Omicron
| Sujet: Re: Collision imprécise Mer 9 Juil 2008 - 10:06 | |
| Lorsqu'il y a une collision avec une instance solide (ton sol), la 1ère instance (ta balle) est automatiquement replacée à son ancienne position avant d'executer l'action (cela n'arrive pas avec des instances non-solides). Je ne pense pas que les variables xprevious et yprevious fonctionnent dans un tel cas, mais un petit bricolage du type - Code:
-
x=x+hspeed y=y+vspeed devrait permettre de replacer la balle à l'emplacement de la collision. |
|
| |
morgan Utilisateur confirmé: Rang *****
Messages : 1626 Localisation : Montpellier
| Sujet: Re: Collision imprécise Mer 9 Juil 2008 - 10:39 | |
| |
|
| |
morgan Utilisateur confirmé: Rang *****
Messages : 1626 Localisation : Montpellier
| Sujet: Re: Collision imprécise Mer 9 Juil 2008 - 10:42 | |
| bon ben sa marche pas... c'est meme pire x( |
|
| |
rainbow-eagle Débutant
Messages : 19 Projet Actuel : Omicron
| Sujet: Re: Collision imprécise Mer 9 Juil 2008 - 13:08 | |
| L'instance est en fait instantanément replacée à son ancienne position au moment de la collision (cela ne demande même pas un seul step). On ne peux donc pas essayer de la replacer manuellement... Je ne vois pas trop comment faire mais il existe peut-être un moyen contourné pour que le resultat de ton action soit celui que tu recherches malgré tout. Il faudrait alors que tu décrives ce que tu cherches à faire (ou que quelqu'un qui s'y connait plus que moi intervienne...) |
|
| |
Devil37 Utilisateur confirmé: Rang *****
Messages : 1815
| Sujet: Re: Collision imprécise Mer 9 Juil 2008 - 13:27 | |
| Le truc serait de rendre ta balle non-solide, et de travailler les collisions avec les instance_place() et tout le tralala. C'est à dire reprogrammer ton système de collisions :pac_dr: Donc comme solution il y a mieux :gniah: Sinon, je ne sais pas si ça va marcher, laisse ta balle solide, met le sprite en mask, et dessine son sprite dans son event draw. Au cas où les collisions serait gérées différemment avec les masks, mais je ne pense vraiment pas |
|
| |
morgan Utilisateur confirmé: Rang *****
Messages : 1626 Localisation : Montpellier
| Sujet: Re: Collision imprécise Mer 9 Juil 2008 - 13:29 | |
| ma balle est pas solide :gniah: |
|
| |
??? Utilisateur confirmé: Rang ****
Messages : 1240 Localisation : NLG, 93
| Sujet: Re: Collision imprécise Mer 9 Juil 2008 - 22:56 | |
| Mais tu peux utiliser lengthdir_x et lengthdir_y, genre : while (place_free(x+lengthdir_x(1,direction),y+lengthdir_y(1,direction))) {x+=lengthdir_x(1,direction) y+=lengthdir_y(1,direction)}
Je sais pas si ça marche j'ai pas testé, juste pondu ça vite fait T_T, mais normalement ça devrait marcher Le 1 c'est peut être trop peu et ça demanderait bcp à ta connection ou cpu, change ça par 5 ou c'est toi qui voit et ça pourrait être nickel (si ça marche bien sur ^^') Et pour ceux qui ne comprendraient pas : ce code fait avancer l'objet de 1 dans sa direction, jusqu'à ce qu'il rencontre un objet solide, le tout dans une boucle while (en clair ça va trouver le premier objet solide dans la direction de l'objet). |
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Collision imprécise Mer 9 Juil 2008 - 23:07 | |
| oui mais ca fait que en un step ca va aller au prochain bloc solide :p_gne: |
|
| |
??? Utilisateur confirmé: Rang ****
Messages : 1240 Localisation : NLG, 93
| Sujet: Re: Collision imprécise Mer 9 Juil 2008 - 23:18 | |
| Bah c'est ça normalement, sauf que c'est pas magique, ça pompe en matière de ressources =/ |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Collision imprécise Mer 9 Juil 2008 - 23:58 | |
| j'utilise au moin 50 truc comme ca dnas mon jeu et aucun prob de ressource _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
[TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: Collision imprécise Jeu 10 Juil 2008 - 0:31 | |
| ...
noobs... - Code:
-
if(collision_line(x,y,xprevious,yprevious,obj_sol,1,1) { x=xprevious; y=yprevious; } et désolé pour ceux que j'ai offusqués, mais franchement, vos méthodes sont bonnes, mais loooongues à calculer pour le PC ... _________________ Bonne chance pour vos projets actuels ! Prêt à aider ceux qui en ont besoin ^^ l'antiqueBienvenue au 2630eme utilisateur : Mike Kennedy ! |
|
| |
??? Utilisateur confirmé: Rang ****
Messages : 1240 Localisation : NLG, 93
| Sujet: Re: Collision imprécise Jeu 10 Juil 2008 - 12:05 | |
| lol [TDT], ya une parenthèse en trop Plus sérieusement, oui je sais que ça pompe, seulement c'est pas la même chose ces deux codes (je crois ) : toi tu détectes une collision, moi je suis déjà dans le cas d'une collision et je vais me coller contre l'objet solide. Un combiné des deux donne des collisions parfaites et respectées, mais en fait je ne sais pas si c'est bien ce que voulait morgan EDIT : A wargamer : ben si, peut être que ton jeu n'est pas très coûteux en terme de ressources, et peut être que tu n'utilise ce genre de code pour trop peu d'objets, mais imagine pour l'ordi calculer une 40 collision en 1 step, le tout dans un jeu qui pompe pas mal, avec des effets et tout, et le tout :gniah: au milieu d'une guerre avec une 20aine de balles toute les 2sec Dis moi que ça ne pompe pas Conclusion : [TDT] à raison ^^'
Dernière édition par ??? le Jeu 10 Juil 2008 - 12:16, édité 1 fois |
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Collision imprécise Jeu 10 Juil 2008 - 12:16 | |
| - ??? a écrit:
- Mais tu peux utiliser lengthdir_x et lengthdir_y, genre :
while (place_free(x+lengthdir_x(1,direction),y+lengthdir_y(1,direction))) {x+=lengthdir_x(1,direction) y+=lengthdir_y(1,direction)}
Si tu fais ca, ca va completement bugguer. Ca risque de faire une boucle infinie. |
|
| |
??? Utilisateur confirmé: Rang ****
Messages : 1240 Localisation : NLG, 93
| Sujet: Re: Collision imprécise Jeu 10 Juil 2008 - 12:20 | |
| Je ne pense pas non. J'utilise ça lors d'un event de collision, la balle est en contact avec un objet solide et elle reviens à son x/y_previous avant de faire son action, qui devrait se faire normalement tout près de l'obj solide. La collision ayant déjà eu lieu, tu peux m'expliquer pourquoi la balle exécuterait une autre trajectoire ? (a moins que j'ai omis un détail ) (en + [TDT] a dis que nos codes sont bons ) |
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Collision imprécise Jeu 10 Juil 2008 - 13:05 | |
| si tu le places dans l'event de collision,ca marche. |
|
| |
??? Utilisateur confirmé: Rang ****
Messages : 1240 Localisation : NLG, 93
| Sujet: Re: Collision imprécise Jeu 10 Juil 2008 - 13:09 | |
| C'est le but, ce code veut juste que lors d'une collision à vitesse élévée avec un solide, l'objet ne soit pas à une grande distance (ici 40) du solide.
Mais je sais toujours pas si on répondu à ses attentes =/ |
|
| |
Contenu sponsorisé
| Sujet: Re: Collision imprécise | |
| |
|
| |
| Collision imprécise | |
|