作者help0430 (@@)
看板GameDesign
標題Re: [問題] 程式上的問題
時間Mon Jan 12 19:45:50 2009
※ 引述《chris76930 (玩具)》之銘言:
: ※ [本文轉錄自 C_Sharp 看板]
: 作者: chris76930 (玩具) 看板: C_Sharp
: 標題: [問題] 程式上的問題
: 時間: Mon Jan 12 17:43:58 2009
: 老師要我們寫一個桌上冰球(在遊樂場常可以看到)的程式,
: 圖畫好了!該弄的都弄好了!
: 可是現在計分跟球的碰撞寫不出來 哭哭~~~
: 老師還要我們用visual C# 2005版的程式寫= = ,
: 可以請板上面的強者大大們幫我一下嗎??
: 感恩!!!>//<
設定一個簡單的幾何圖形,通常是圓形或矩型
你是2D冰球的話就用圓形吧
然後你要碰的是另一顆冰球還是桌子邊緣還是有類似球拍的物體
然後在每次的移動依序檢查每個可能發生碰撞的物體
如果兩個物體有重疊,就是發生碰撞了
圓形重疊就判斷a圓心和b圓心的距離有沒有小於兩者半徑和
矩型的話就判斷四個頂點有沒有在另一個矩型內
想法大概是這樣
實作的話就要看你遊戲程式的架構了!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.174.201
推 NDark:要是我會直接用點跟點的距離 這樣最快 反正不會有人管多準 01/12 20:16
→ help0430:哈!~~也可以阿~~但是球太大的話很突兀! 01/12 23:07
→ Ebergies:很多都是用點對點, 也比較快 01/13 15:25
推 softwind:這個我有寫過 x86 asm版的~ 懷念阿~ 呵呵呵 加油 01/14 00:01
→ paglytw:我是覺得~用圖片的每點像素的透明度來檢查比較精準~ 01/21 11:05
→ paglytw:因為 正常的守門員應該是 不規則的型狀~而且 撞擊後的反彈 01/21 11:08
→ paglytw:如果忽略了球的自旋~如果不是碰撞到平面的時候 還蠻不好處 01/21 11:10
→ paglytw:理的~因為你需要球跟物体最後發生碰撞的位置~然後球會有速 01/21 11:15
→ paglytw:度~還會造成穿越~總而言之~如果一開始的碰撞點有誤~最後呈 01/21 11:20
→ paglytw:現出來的結果是差蠻多的! 01/21 11:20