看板 Visual_Basic 關於我們 聯絡資訊
使用TIMERTICK做 讓圖片繞圈的動作 但是他只轉了一圈 到了下一圈的時候 卻只到表單最右側就停住不動了 不知道是哪裡出了問題 Public Class Form1 Dim x As Integer = 1 Dim y As Integer = 1 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick man.Left = man.Left + x If man.Left >= Me.ClientSize.Width - man.Size.Width - 10 Then x = 0 man.Top = man.Top + y If man.Top >= Me.ClientSize.Height - man.Size.Height - 10 Then x = -1 y = 0 End If End If If man.Left <= 10 Then x = 0 y = 1 man.Top = man.Top - y If man.Top <= 10 Then x = 1 y = 0 End If End If End Sub End Class 麻煩高手替我檢視一下是否有哪裡出了邏輯錯誤還是... 感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.91.234
Peruheru:我沒有執行你的程式,但我跟妳說一個方法 05/22 00:35
Peruheru:圖片會不動,一是x跟y都變成零,二是x或y反覆在1或-1變化 05/22 00:36
Peruheru:之前寫一個球會碰撞牆壁,還會互相碰撞的程式時遇過 05/22 00:37
Peruheru:反正你就是裡面設一個條件,看哪個數字在連續變化 05/22 00:38
Peruheru:往回推你就知道原因是什麼了,也就是要你找中斷點 05/22 00:38
Peruheru:另外,為什麼你的X增加寫在最外層,Y增加卻寫在判斷內? 05/22 00:41
Peruheru:妳不覺的你應該要兩個要放在同樣的位置嗎? 05/22 00:42
Peruheru:既然你是使用兩個動量變數來設定位置,那就放外面呀 05/22 00:42
Rusifarzero:看到P大的一是x跟y都變成零讓我豁然開朗! 05/22 00:44
Rusifarzero:我在第一個IF 的X=1後加上一個Y=1 她就動了 原來是我 05/22 00:44
Rusifarzero:沒有把Y也初始為1 難怪他不動 05/22 00:45
Rusifarzero:阿 打錯 "第一個IF的X=0後" 05/22 00:45
Peruheru:這麼快就解決啦?我只是就經驗來說,沒去看你的邏輯 05/22 00:49
Peruheru:不過你得寫法真的,還蠻奇特的... 05/22 01:03
Peruheru:既然使用了正負動量,那判斷運動還使用加減號不是很怪嗎 05/22 01:04
Peruheru:既然可以用y=-1來代表y值減1,那就全部都用加的嘛 05/22 01:04