merhaba oyun gelitiriyorum oyunumda fırlatacagım halkayı çizdiriyorum fakat onu pictureboxa ceviremiyorum sürekli_ates(i) = CType(grfk, PictureBox) nedenını bulamadım
kodlarım:
Private Sub oyucunun_atesini_olustur()
If (Timer1.Enabled = True) Then
'atılan atesler hala gidiyorsa yeni üretme çık
Return
End If
Dim i As Integer
For i = 0 To 2
'5 tane ateş üret
Dim grfk As Graphics
Dim kalemim = New Pen(Color.Red)
grfk = Me.CreateGraphics()
grfk.Clear(Me.BackColor)
grfk.DrawEllipse(kalemim, 50, 250, 150, 150)
sürekli_ates(i) = CType(grfk, PictureBox)
Me.Controls.Add(sürekli_ates(i))
'oluşturulan ateşler aralarında biraz aralıkla oluşturulsun
sürekli_ates(i).SetBounds(PictureBox1.Location.X + (PictureBox1.Width / 2) + aralık_birak, PictureBox1.Location.Y + 2 * aralık_birak, 3, 5)
aralık_birak += 10
sürekli_ates(i).BackColor = Color.Blue
Timer1.Enabled = True
Next
aralık_birak = -10
End Sub
Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
timer3.Enabled = True
'basılan yön tuşu hangisiyse ona göre
'gitmesi gereken timer ile çalıştır
If ((e.KeyCode = Keys.Left) And (h > 0)) Then
h = h * -1
ElseIf ((e.KeyCode = Keys.Right) And (h < 0)) Then
h *= -1
ElseIf (e.KeyCode = Keys.Space) Then
oyucunun_atesini_olustur()
End If
End Sub
kodlarım:
Private Sub oyucunun_atesini_olustur()
If (Timer1.Enabled = True) Then
'atılan atesler hala gidiyorsa yeni üretme çık
Return
End If
Dim i As Integer
For i = 0 To 2
'5 tane ateş üret
Dim grfk As Graphics
Dim kalemim = New Pen(Color.Red)
grfk = Me.CreateGraphics()
grfk.Clear(Me.BackColor)
grfk.DrawEllipse(kalemim, 50, 250, 150, 150)
sürekli_ates(i) = CType(grfk, PictureBox)
Me.Controls.Add(sürekli_ates(i))
'oluşturulan ateşler aralarında biraz aralıkla oluşturulsun
sürekli_ates(i).SetBounds(PictureBox1.Location.X + (PictureBox1.Width / 2) + aralık_birak, PictureBox1.Location.Y + 2 * aralık_birak, 3, 5)
aralık_birak += 10
sürekli_ates(i).BackColor = Color.Blue
Timer1.Enabled = True
Next
aralık_birak = -10
End Sub
Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
timer3.Enabled = True
'basılan yön tuşu hangisiyse ona göre
'gitmesi gereken timer ile çalıştır
If ((e.KeyCode = Keys.Left) And (h > 0)) Then
h = h * -1
ElseIf ((e.KeyCode = Keys.Right) And (h < 0)) Then
h *= -1
ElseIf (e.KeyCode = Keys.Space) Then
oyucunun_atesini_olustur()
End If
End Sub