我想在Yampa有一個粒子場。單個粒子應該沿直線移動,但取決於給定的角度。角度和移動速度根據玩家的速度和角度而變化。我不知道如何更好地解釋,我正在開發類似於this game的東西。Yampa粒子場
不管怎樣,我現在的代碼如下所示:
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
是當前的速度,a
是當前的角度。但粒子以很奇怪的方式移動。 (全碼here
不幸的是,我相信我在一個錯誤的方式思考,但我還沒能弄清楚如何做到這一點,尤其是如何正確使用integral
。
也許有人可以給。我一些提示
我不知道什麼是理想的行爲,但是你的速度v總是在增加,si因爲你的右邊也有p,所以你的建築是一個不變的整體。所以我認爲你的粒子已經在第二秒內消失了...... – martingw 2012-07-21 14:31:41
究竟是什麼問題......你對'p'的建議是什麼? – Lanbo 2012-07-21 15:45:47