kyrie-chan
سه شنبه 29 فروردین 1391, 20:46 عصر
سلام . من قصد دارم توپ بعد از برخورد به دیوار ، بازتاب بشه ، اما نمیدونم از چه کدی استفاده کنم ...
جای کامنت ها ( اونایی که با ' مشخص شدن ) چی باید بذارم ؟ تو رو خدا جواب بدین ، چون خیلی واجبه !! اینا ها رو هم امتحان کردم اما جواب نمیده :
x-=1 (همینطور برای y )
x*=-1 (همینطور برای y )
' yek panel va yek timer b form ezafe konid .
Imports System.Drawing.Drawing2D
Public Class Form1
Dim x1, y1, x, y, m
Dim p As New Panel
Dim b As Boolean
Private Sub Panel1_Click(ByVal sender As System.Object, ByVal e As MouseEventArgs) Handles Panel1.Click
x1 = panel1.width/2
y1 = panel1.height
m = (e.Y - y1) / (e.X - x1)
x = x1
y = y1
With p
.Size = New Size(50, 50)
.Location = New Point(x, y)
End With
If e.X < Me.Width / 2 Then
b = True
ElseIf e.X > Me.Width / 2 Then
b = False
End If
Panel1.Controls.Add(p)
Timer1.Interval = 10
Timer1.Start()
p.CreateGraphics.FillEllipse(Brushes.SlateBlue, 0, 0, 50, 50)
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If b Then
x -= 5
ElseIf b = False Then
x += 5
End If
y = m * (x - x1) + y1
If p.Bounds.IntersectsWith(Panel1.Bounds) Then
p.Location = New Point(x, y)
Else
p.Location = New Point(Panel1.Width, Panel1.Height - 75)
m = 0
x = x1 = p1.X
y = y1 = p1.Y
End If
If p.Bottom > Panel1.Bottom Then
' jahat avaz she
' shib aks beshe
End If
If p.Top < Panel1.Top Then
' jahat avaz she
' shib aks beshe
End If
If p.Right > Panel1.Right Then
' jahat avaz she
' shib aks beshe
End If
If p.Left < Panel1.Left Then
' jahat avaz she
' shib aks beshe
End If
End Sub
End Class
جای کامنت ها ( اونایی که با ' مشخص شدن ) چی باید بذارم ؟ تو رو خدا جواب بدین ، چون خیلی واجبه !! اینا ها رو هم امتحان کردم اما جواب نمیده :
x-=1 (همینطور برای y )
x*=-1 (همینطور برای y )
' yek panel va yek timer b form ezafe konid .
Imports System.Drawing.Drawing2D
Public Class Form1
Dim x1, y1, x, y, m
Dim p As New Panel
Dim b As Boolean
Private Sub Panel1_Click(ByVal sender As System.Object, ByVal e As MouseEventArgs) Handles Panel1.Click
x1 = panel1.width/2
y1 = panel1.height
m = (e.Y - y1) / (e.X - x1)
x = x1
y = y1
With p
.Size = New Size(50, 50)
.Location = New Point(x, y)
End With
If e.X < Me.Width / 2 Then
b = True
ElseIf e.X > Me.Width / 2 Then
b = False
End If
Panel1.Controls.Add(p)
Timer1.Interval = 10
Timer1.Start()
p.CreateGraphics.FillEllipse(Brushes.SlateBlue, 0, 0, 50, 50)
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If b Then
x -= 5
ElseIf b = False Then
x += 5
End If
y = m * (x - x1) + y1
If p.Bounds.IntersectsWith(Panel1.Bounds) Then
p.Location = New Point(x, y)
Else
p.Location = New Point(Panel1.Width, Panel1.Height - 75)
m = 0
x = x1 = p1.X
y = y1 = p1.Y
End If
If p.Bottom > Panel1.Bottom Then
' jahat avaz she
' shib aks beshe
End If
If p.Top < Panel1.Top Then
' jahat avaz she
' shib aks beshe
End If
If p.Right > Panel1.Right Then
' jahat avaz she
' shib aks beshe
End If
If p.Left < Panel1.Left Then
' jahat avaz she
' shib aks beshe
End If
End Sub
End Class