作者tpps88206 (老王阿泉)
看板GameDesign
標題cs程式碼問題,紀錄滑鼠軌跡後物件移動
時間Tue May 5 13:39:29 2015
我要讓滑鼠左鍵按下時,開始記錄滑鼠軌跡,當左鍵放開後,物件可以跟著記錄的軌跡移
動
移動的部分都正常,但物件只能移動一步
所以加入if,當移動一段距離後,才會做第二次記錄,但一執行就直接當機
也有試著用暫停機制,每隔半秒紀錄一次,但一樣一執行就直接當機
請問是程式碼哪邊有問題嗎?新手發問請鞭,謝謝大家
http://i.imgur.com/9HlVvHV.jpg
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.127.233.88
※ 文章網址: https://webptt.com/m.aspx?n=bbs/GameDesign/M.1430804371.A.63E.html
1F:推 LayerZ: while(true)? 05/05 13:56
2F:→ LayerZ: 而且裡面沒break; 05/05 13:56
3F:推 cowbaying: 我猜陣列溢位 05/05 13:56
4F:推 cowbaying: 不對 應該是無窮迴圈 跳不出來 05/05 13:57
5F:→ LayerZ: 應該是溢位先當了,沒溢位才輪到無窮當XD 05/05 13:58
6F:推 cjcat2266: 要先更正觀念 for (int i = 0; i < 10; i++) { ++x; } 05/05 14:16
7F:→ cjcat2266: 不會讓 x "漸漸"增加10次,而是"瞬間"增加10次 05/05 14:17
8F:→ dreamnook: while(true) 沒break條件 直接炸 05/05 14:20
9F:→ dreamnook: 另外移動的問題就像上面cj講的 但我覺得有更好的說法是 05/05 14:23
10F:→ dreamnook: 那個for迴圈是在這個'Update'做的 05/05 14:23
11F:→ dreamnook: 你要讓物體看起來像移動 必須不同的'Update'在不同位置 05/05 14:24
12F:→ dreamnook: (一個Update可以視為一個frame) 05/05 14:25
13F:推 cjcat2266: 感謝樓上澄清,不想推太多行文XD 05/05 14:53
14F:→ dreamnook: XDD 不會 05/05 15:01
15F:→ SaxPenguin: 先弄清楚Update跟deltaTime的關係 05/05 18:00
16F:→ jellyice: Update本身就可以當作一個while(true)來看,它是每個 05/07 11:12
17F:→ jellyice: frame會被呼叫一次的,所以不需要在Update當中跑無限迴 05/07 11:12
18F:→ jellyice: 圈。否則程式一直停留在while(check)區段裡面跑,根本出 05/07 11:13
19F:→ jellyice: 不去這一次的Update,你的程式就沒辦法運作了,它既不會 05/07 11:14
20F:→ jellyice: 更新畫面,也不會更新滑鼠位置,因為它要離開Update才能 05/07 11:14
21F:→ jellyice: 抓到滑鼠的移動訊號 05/07 11:15
22F:→ LayerZ: 推上面都解釋很清楚了,你把while(check)拔掉這程式應該 05/07 12:21
23F:→ LayerZ: 就能運作了 05/07 12:21
24F:→ LayerZ: 只會動一次的原因是 i,j宣告位置,然後注意array爆炸就好 05/07 12:22
25F:→ LayerZ: 先改到可以動再來研究為什麼吧XD 05/07 12:22
26F:→ LayerZ: "變數的生命周期"y 05/07 14:46