alinini
سه شنبه 01 شهریور 1390, 14:40 عصر
سلام به همه ی دوستان من دارم یه بازی می سازم که یک دایره است که با خوردن امیازات بزرگ میشه امتیازات در حقیقت مربع های قرمز هستند ولی هر کار کردم راه فهمیدن بر خورد دایره با مربع ها رو نفهمیدم این هم کد برنامه لطفا کمک کنید
Dim y As Long
Dim x, xd, yd, r, q As Long
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Circle (x, y), r, &H8000000F
If KeyCode = 37 Then Timer4.Enabled = True: Timer3.Enabled = False: Timer2.Enabled = False: Timer1.Enabled = False
If KeyCode = 38 Then Timer2.Enabled = True: Timer1.Enabled = False: Timer3.Enabled = False: Timer4.Enabled = False
If KeyCode = 39 Then Timer3.Enabled = True: Timer1.Enabled = False: Timer2.Enabled = False: Timer4.Enabled = False
If KeyCode = 40 Then Timer1.Enabled = True: Timer2.Enabled = False: Timer3.Enabled = False: Timer4.Enabled = False
If x > Form1.ScaleWidth - 300 Then x = r
If x < 300 Then x = Form1.ScaleWidth - r
If y > Form1.ScaleHeight - 300 Then y = r
If y < 300 Then y = Form1.ScaleHeight - r
If KeyCode = 27 Then Timer2.Enabled = False: Timer3.Enabled = False: Timer4.Enabled = False: Timer1.Enabled = False
Circle (x, y), r
For i = 1 To 360
xd = r * Cos(i)
yd = r * Sin(i)
c = Point(xd + 2, yd + 2)
If c = q Then q = &H8000000F: r = r + 50
Next
End Sub
Private Sub Form_Load()
x = 800: y = 1200: r = 300: q = &HFF&
Circle (x, y), 300
Line (300, 600)-(600, 300), q, BF
For i = 1 To 360
xd = r * Cos(i): xd = Int(xd)
If xd < 0 Then xd = xd + xd
yd = r * Sin(i): yd = Int(yd)
If yd < 0 Then yd = yd + yd
Next
For i = 300 To 600
For t = 300 To 600
If xd = i And yd = t Then q = &H8000000F: r = r + 50
Next
Next
End Sub
Private Sub Timer1_Timer()
Circle (x, y), r, &H8000000F
If x > Form1.ScaleWidth - 300 Then x = r
If x < r Then x = Form1.ScaleWidth - r
If y > Form1.ScaleHeight - 300 Then y = r
If y < r Then y = Form1.ScaleHeight - r
y = y + 50
Circle (x, y), r
End Sub
Private Sub Timer2_Timer()
Circle (x, y), 300, &H8000000F
If x > Form1.ScaleWidth - 300 Then x = r
If x < r Then x = Form1.ScaleWidth - r
If y > Form1.ScaleHeight - 300 Then y = r
If y < r Then y = Form1.ScaleHeight - r
y = y - 50
Circle (x, y), 300
End Sub
Private Sub Timer3_Timer()
Circle (x, y), 300, &H8000000F
If x > Form1.ScaleWidth - 300 Then x = r
If x < r Then x = Form1.ScaleWidth - r
If y > Form1.ScaleHeight - 300 Then y = r
If y < r Then y = Form1.ScaleHeight - r
x = x + 50
Circle (x, y), 300
End Sub
Private Sub Timer4_Timer()
Circle (x, y), r, &H8000000F
If x > Form1.ScaleWidth - 300 Then x = r
If x < r Then x = Form1.ScaleWidth - r
If y > Form1.ScaleHeight - 300 Then y = r
If y < r Then y = Form1.ScaleHeight - r
x = x - 50
Circle (x, y), r
End Sub
Dim y As Long
Dim x, xd, yd, r, q As Long
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Circle (x, y), r, &H8000000F
If KeyCode = 37 Then Timer4.Enabled = True: Timer3.Enabled = False: Timer2.Enabled = False: Timer1.Enabled = False
If KeyCode = 38 Then Timer2.Enabled = True: Timer1.Enabled = False: Timer3.Enabled = False: Timer4.Enabled = False
If KeyCode = 39 Then Timer3.Enabled = True: Timer1.Enabled = False: Timer2.Enabled = False: Timer4.Enabled = False
If KeyCode = 40 Then Timer1.Enabled = True: Timer2.Enabled = False: Timer3.Enabled = False: Timer4.Enabled = False
If x > Form1.ScaleWidth - 300 Then x = r
If x < 300 Then x = Form1.ScaleWidth - r
If y > Form1.ScaleHeight - 300 Then y = r
If y < 300 Then y = Form1.ScaleHeight - r
If KeyCode = 27 Then Timer2.Enabled = False: Timer3.Enabled = False: Timer4.Enabled = False: Timer1.Enabled = False
Circle (x, y), r
For i = 1 To 360
xd = r * Cos(i)
yd = r * Sin(i)
c = Point(xd + 2, yd + 2)
If c = q Then q = &H8000000F: r = r + 50
Next
End Sub
Private Sub Form_Load()
x = 800: y = 1200: r = 300: q = &HFF&
Circle (x, y), 300
Line (300, 600)-(600, 300), q, BF
For i = 1 To 360
xd = r * Cos(i): xd = Int(xd)
If xd < 0 Then xd = xd + xd
yd = r * Sin(i): yd = Int(yd)
If yd < 0 Then yd = yd + yd
Next
For i = 300 To 600
For t = 300 To 600
If xd = i And yd = t Then q = &H8000000F: r = r + 50
Next
Next
End Sub
Private Sub Timer1_Timer()
Circle (x, y), r, &H8000000F
If x > Form1.ScaleWidth - 300 Then x = r
If x < r Then x = Form1.ScaleWidth - r
If y > Form1.ScaleHeight - 300 Then y = r
If y < r Then y = Form1.ScaleHeight - r
y = y + 50
Circle (x, y), r
End Sub
Private Sub Timer2_Timer()
Circle (x, y), 300, &H8000000F
If x > Form1.ScaleWidth - 300 Then x = r
If x < r Then x = Form1.ScaleWidth - r
If y > Form1.ScaleHeight - 300 Then y = r
If y < r Then y = Form1.ScaleHeight - r
y = y - 50
Circle (x, y), 300
End Sub
Private Sub Timer3_Timer()
Circle (x, y), 300, &H8000000F
If x > Form1.ScaleWidth - 300 Then x = r
If x < r Then x = Form1.ScaleWidth - r
If y > Form1.ScaleHeight - 300 Then y = r
If y < r Then y = Form1.ScaleHeight - r
x = x + 50
Circle (x, y), 300
End Sub
Private Sub Timer4_Timer()
Circle (x, y), r, &H8000000F
If x > Form1.ScaleWidth - 300 Then x = r
If x < r Then x = Form1.ScaleWidth - r
If y > Form1.ScaleHeight - 300 Then y = r
If y < r Then y = Form1.ScaleHeight - r
x = x - 50
Circle (x, y), r
End Sub