看板 GameDesign 關於我們 聯絡資訊
※ 引述《F23ko (純潔)》之銘言: : ※ 引述《yan04870449 (楊伯)》之銘言: : : 其實這個問題應該比較偏向數學 : : 我想讓某一個物體以旋轉的方式朝著一個目標前近, : : 也就是說是繞著目標靠近的意思。 : : 備註一下,這次是練習2D遊戲。 首先,你想旋轉,直接想到的就是圓,圓的公式如下 x = r*cos(θ) y = r*sin(θ) 而只要角度θ變化,x, y就會在圓週上動,而r是半徑 看你是要等速度的旋轉還是加速度的 如果是等速度的,那你需要一個角速度 ω = 0.1π/second 如果你要的是加速的旋轉,那就得要有一個角加速度 α = 0.1π/second^2 接著是向心的速度 μ = 1pixel/second 如果你喜歡他是以加速度的方式接近圓心的話,那可以再加上一個向心加速度 ν = 1pixel/second^2 有了這些參數,就可以在每次更新時算出時間差,下一次的位置 例如上次更新和這次差0.1秒 Δtime = 0.1seconds 那麼,公式就應該如下 # 更新角度 θ += ω*Δtime # 更新半徑 r += μ*Δtime # 更新座標 x = r*cos(θ) y = r*sin(θ) # 計算向心速度 μ += ν*Δtime # 計算角速度 ω += α*Δtime 看起來有點複雜,但其實很簡單 只要你把兩種移動的變量拆開來看 一個是角度,一個是半徑,兩個都是獨立的 所以可以分開來算 -- Now.in 網路廣播電台平台 http://now.in 易記學 程式設計教學 http://ez2learn.com/ VICTOR's 個人Blog http://blog.ez2learn.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.252.67.159
silveriii:push 07/18 21:55