作者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/cn.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