cs程式碼問題,紀錄滑鼠軌跡後物件移動

作者: tpps88206 (老王阿泉)   2015-05-05 13:39:29
我要讓滑鼠左鍵按下時,開始記錄滑鼠軌跡,當左鍵放開後,物件可以跟著記錄的軌跡移

移動的部分都正常,但物件只能移動一步
所以加入if,當移動一段距離後,才會做第二次記錄,但一執行就直接當機
也有試著用暫停機制,每隔半秒紀錄一次,但一樣一執行就直接當機
請問是程式碼哪邊有問題嗎?新手發問請鞭,謝謝大家
http://i.imgur.com/9HlVvHV.jpg
作者: LayerZ (無法如願)   2015-05-05 13:56:00
while(true)?而且裡面沒break;
作者: cowbaying (是在靠北喔)   2015-05-05 13:56:00
我猜陣列溢位不對 應該是無窮迴圈 跳不出來
作者: LayerZ (無法如願)   2015-05-05 13:58:00
應該是溢位先當了,沒溢位才輪到無窮當XD
作者: cjcat2266 (CJ Cat)   2015-05-05 14:16:00
要先更正觀念 for (int i = 0; i < 10; i++) { ++x; }不會讓 x "漸漸"增加10次,而是"瞬間"增加10次
作者: dreamnook (亞龍)   2015-05-05 14:20:00
while(true) 沒break條件 直接炸另外移動的問題就像上面cj講的 但我覺得有更好的說法是那個for迴圈是在這個'Update'做的你要讓物體看起來像移動 必須不同的'Update'在不同位置(一個Update可以視為一個frame)
作者: cjcat2266 (CJ Cat)   2015-05-05 14:53:00
感謝樓上澄清,不想推太多行文XD
作者: dreamnook (亞龍)   2015-05-05 15:01:00
XDD 不會
作者: SaxPenguin (平果)   2015-05-05 18:00:00
先弄清楚Update跟deltaTime的關係
作者: jellyice (寒若冬)   2015-05-07 11:12:00
Update本身就可以當作一個while(true)來看,它是每個frame會被呼叫一次的,所以不需要在Update當中跑無限迴圈。否則程式一直停留在while(check)區段裡面跑,根本出不去這一次的Update,你的程式就沒辦法運作了,它既不會更新畫面,也不會更新滑鼠位置,因為它要離開Update才能抓到滑鼠的移動訊號
作者: LayerZ (無法如願)   2015-05-07 12:21:00
推上面都解釋很清楚了,你把while(check)拔掉這程式應該就能運作了只會動一次的原因是 i,j宣告位置,然後注意array爆炸就好先改到可以動再來研究為什麼吧XD

Links booklink

Contact Us: admin [ a t ] ucptt.com