Je veux avoir un champ de particules dans Yampa. La particule unique devrait simplement se déplacer en ligne droite, mais en fonction d'un angle donné. Cet angle et la vitesse de déplacement varient en fonction de la vitesse et de l'angle du joueur. Je ne sais pas comment mieux expliquer, je développe quelque chose de similaire à this game.Yampa Particle Field
Quoi qu'il en soit, mon code pour ressemble maintenant à ceci:
star :: (Float, Float) -> SF (Float, Float) (Float, Float)
star p0 = proc (vel, a) -> do
rec
v <- integral -< vel *^ (cos a, sin a)
p <- clampS ^<< (p0 ^+^) ^<< integral -< v ^+^ p
returnA -< p
clampS [email protected](x, y) | x > 1 = (x-2, y)
| x < (-1) = (x+2, y)
| y > 1 = (x, y-2)
| y < (-1) = (x, y+2)
| otherwise = s
vel
est la vitesse actuelle, a
est l'angle actuel. Mais les particules se déplacent, bien, d'étranges manières. (Code complet here
Malheureusement, je suis sûr que je pense à une mauvaise façon, mais je n'ai pas encore été en mesure de savoir comment faire, en particulier comment l'utilisation integral
correctement.
Peut-être que quelqu'un peut donner . moi quelques conseils
Je ne sais pas ce qui est le comportement souhaité, mais votre vitesse v augmente toujours, si nce votre construction est une intégrale par rapport à une constante, et la position augmente rapidement parce que vous avez aussi p sur le côté droit. Donc, je pense que votre particule est partie en une seconde ... – martingw
Quel est exactement le problème ... quelle est votre suggestion sur 'p'? – Lanbo