| Gestion pente [sujet ouvert en permanence] | |
|
|
Auteur | Message |
---|
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 17:09 | |
| Salut. En fait je n'ai pas de problème c'est juste une question. Comment faire pour qu'un bonhomme reste collé à la pente, quel que soit son angle (entre cetaines valeurs quand m^ , le bonhome ne doit pas escalader des murs et il doit pouvoir tomber en conservant sa vitesse horizontale) ? J'ai déja essayer avec des tangentes et une boucle mais ça plante directement parce que ça consomme trop. Bon je vais réfléchir de mon côté je vous rappelle et merci d'avance [edit] j'ai trouvé une solution (3eme message 2eme page)
Dernière édition par Johny Wessmuller le Mar 4 Mai 2010 - 10:36, édité 5 fois |
|
| |
jo *Excellent utilisateur*
Messages : 4879 Localisation : CENSURE T_T Projet Actuel : FAC
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 17:34 | |
| Tu veux que l'image de ton personnage aie l'angle de la pente? ou tu veux qu'il puisse rester dessus? c'est pas très clair, tu peux détailler? |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 18:21 | |
| Waw vous répondez vite ! Euh je veux qu'il reste collé à la pente. Mais pour être encore plus précis, je veux que ça soit comme dans la vraie vie, prenons l'exemple d'une moto-cross : elle reste collé à la pente lors de la montée, arrivée en haut de la bosse, si sa vitesse horizontale lui permet, elle continue sa trajectoire en l'air et reste scotchée ensuite à la descente lorsqu'elle atterrit. |
|
| |
jo *Excellent utilisateur*
Messages : 4879 Localisation : CENSURE T_T Projet Actuel : FAC
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 18:22 | |
| Donc c'est l'angle.
C'est pour une moto ou juste un personnage? |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 18:26 | |
| Pour un perso Ce n'est pas l'angle de l'image, je souhaiterai que le bonhomme puisse rester sur la pente, c'est le moteur de déplacement. |
|
| |
Qualcuno Très bonne participation
Messages : 150
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 18:29 | |
| Dans le fond tu veut faire un "Jump" ? |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 18:38 | |
| Non non Oublions l'exemple de la moto, je veux juste que le bonhomme colle à la pente : exemple de systeme : if place_free(x+vitesse,y) {hspeed=vitesse} else if place_free(x+vitesse/sqrt(2),y-vitesse/sqrt(2) {vspeed=-vitesse/sqrt(2) hspeed=-vspeed} C'est un exemple non testé mais vous voyez le principe, sauf que la le perso va coller à la pente 1/2 mais pas à une pente 1/4 par ex. Si vous voulez faire avec les tangentes et une boucle oubliez j'ai testé c'est super lourd |
|
| |
jo *Excellent utilisateur*
Messages : 4879 Localisation : CENSURE T_T Projet Actuel : FAC
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 18:45 | |
| Si il détecte plus rien, il va pas s'arrêter; donc il suffit juste de rien ajouter, nan? |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 19:02 | |
| |
|
| |
jo *Excellent utilisateur*
Messages : 4879 Localisation : CENSURE T_T Projet Actuel : FAC
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 19:07 | |
| Ha, ce qui te fait ***** c'est que le personnage accélère en fait, c'est tout? |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 19:15 | |
| Ouais exact je voudrais un truc come dans la réalité c'est bizarre que hspeed reste la m^ alors que vspeed augmente ! Personne ne court plus vite en montée ( à part peut-être Chuck Norris ) |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 21:24 | |
| |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 22:12 | |
| Oui c'est un truc comme ça, mais ton bonhomme marche sur n'importe quelles pentes ou que sur du 1/2 et du 1/4 ? En tout cas bon jeu et oui j'aimerai bien avoir les sources stp. J'ai la version gratuite mais au pire, même si je ne peux pas l'exploiter poste le qd même stp cela pourra peut-être aider des gens, :p_merci: |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 26 Avr 2010 - 22:20 | |
| Voila, je t'envoi la source. Tu modifie la valeur slope du joueur pour changer la hauteur (limite tu peux monter par dessu un immeuble ) mais si la hauteur est plus ahute que celle de ton perso, remplace dnas step -> physique -> déplacement if (!place_meeting(x + sign(v) * DirY + slope * DirX, y + sign(v) * DirX - slope * DirY, parent_solid)) par if (!place_meeting(x + sign(v) * DirY + slope * DirX, y + sign(v) * DirX - slope * DirY, parent_solid) || !place_meeting(x + sign(v) * DirY, y + sign(v) * DirX, parent_solid)) sinon il va détecter les objet au dessu de lui, comme ca il va passer dessou |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Mar 27 Avr 2010 - 19:17 | |
| Ok merci bcp je l'étudie je vous tiendrai au courant. Waw franchement c'est du travail bien joué |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Mar 27 Avr 2010 - 21:26 | |
| lol merci sinon ba comem t'as la version lite: remplace: if (!place_meeting(x + sign(v) , y - slope * DirY, parent_solid)) par if (!place_meeting(x + sign(v) , y - slope * DirY, parent_solid) || !place_meeting(x + sign(v) , y, parent_solid)) |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Mar 27 Avr 2010 - 22:14 | |
| Ok ok bon je vais regarder tout ça en attendant le topic reste ouvert vous puvez donner vos solutions d'ailleurs je me demandais est-ce que c'est pososible de faire un truc avec un cercle, j'explique : 1)On met un cercle de centre le bas du bonhomme et de rayon la vitesse. 2)On regarde quel est le premier point sur le cercle sur lequel le bonhomme (en mettant perso.(x,y) sur le bas du sprite du perso bien sûr) n'a pas de collision En fait c'est un peu ma solution de la tangente, mais avec la tangente ça ramait. Je vous détaille ma soltution de la tangente pour que tout le monde comprenne mon premier post . - Spoiler:
Tout d'abord la partie mathématique : Soit Xa la position sur l'axe des abscises à l'arrivée et Xd au départ, Ya la position sur l'axe des ordonnées à l'arrivée et Yd au départ. Je vais poser x=|Xa-Xd| ( la distance entre Xa et Xd) y=|Ya-Yd| (la distance entre Ya et Yd) Alors d'apres pythagore la distance d=sqrt(x*x+y*y) Or d'apres la trigonométrie tangente(direction)=y/x (en convertissant direction en radian)
On résout le systeme : Comme tangente(dir)=y/x on a y=x*tan(dir) Donc d=sqrt(x*x+(x*tan(dir))*(x*tan(dir)))=sqrt(x*x*(tan(dir)+1)) soit d=x*sqrt(tan(dir)+1) Doncx=d/sqrt(tan(dir)+1) Comme y=x*tan(dir), on obtient y=d*tan(dir)/sqrt(tan(dir)+1)
La partie game maker
Ici x et y sont les x et y du jeu en non pas les |Xa etc...| On fait une boucle qui regarde à chaque fois si à la position (x+ou-d/sqrt(tan(dir)+1),y-d*tan(dir)/sqrt(tan(dir)+1)) il y a une collision, qui se stoppe (break) si non, et en incrémentant à chaque fois direction de 1°. Bien sûr, on ne traite pas le cas ou direction=90 ou 270 car rappellons que que tan(dir)=y/x et que dans ce cas x=0.
|
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Mar 27 Avr 2010 - 22:27 | |
| Le truc c'est que après bon courage poru détecté d,ou viens la collision |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Mar 27 Avr 2010 - 22:39 | |
| |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Mer 28 Avr 2010 - 16:03 | |
| Au fait j'étais tellement absorbé par le fait que ton système marche super bien que je n'avais pas vu qu'en fait ton perso accélere aussi dans les pentes ! Mais bon c'est pas grave, car pour le reste c'est parfait . Bon je vais continuer à réfléchir, je vous tiens au courant si je trouve une solution ! Au fait je recomande ce systeme à tout le monde, voici, avec la permission de wargamer, le lien https://cbna.forumactif.com/vos-projets-f11/wargamer-s-engine-t8905.htm |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Mer 28 Avr 2010 - 18:39 | |
| en bidouillant un peu tu va y arrivé, quoi que je devrais faire une version plus explicite |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Dim 2 Mai 2010 - 13:14 | |
| Ok merci d'ailleurs je crois avoir trouvé une solution en adaptant ma méthode de la tangente, en fait je remplace le tan(dir) qui faisait bugger dans la boucle, par une variable que j'incrémente à chk fois, c'est moins précis mais plus léger et ça peut marcher je testerai ça plus tard , je vous tiens au courant |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| |
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 3 Mai 2010 - 13:04 | |
| la version longue, tu rajoute des collision avec tout les objets pentes et tu divise par 2 ta vitesse :gniah: (évidament c'est totalement innutile en plus d'être gourmand) |
|
| |
Johny Wessmuller Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Gestion pente [sujet ouvert en permanence] Lun 3 Mai 2010 - 14:13 | |
| Ah ouais je vois ce que tu veux dire mais ça ne marchera pas pour un objet sol en forme de cosinus, par exemple, parce qu'il est composé de plusieurs pentes (ou sa dérivée n'est pas constante au choix) [EDIT] D'ailleurs, j'ai rajouté une courbe cosinus pour voir [/EDIT] Je vous envoie une première ébauche de mon magnifiquement extraordinaire systeme [EDIT] Si vous mettez une vitesse élevée ( par ex 16 dans vitesse dans create), le bonhomme peut sauter les bosses du cosinus comme une motocross Il y a 1 petit pb : il n'accroche pas à la pente en descente, mais pour moi, c'est pas un pb, je peux le régler si je veux, mais je trouve ça bien comme ça |
|
| |
Contenu sponsorisé
| Sujet: Re: Gestion pente [sujet ouvert en permanence] | |
| |
|
| |
| Gestion pente [sujet ouvert en permanence] | |
|