Я создаю шутер в стиле космических захватчиков, в котором пришельцы генерируются во время выполнения и размещаются в случайных местах.Я пытаюсь заставить столкновение между игроками лазеров игроков и инопланетян работать, но проблема в том, что у меня нет способа определить, какой инопланетянин получил удар.
Инопланетяне объявляются в таком цикле:
spawncount = 20
Do Until spawncount = 0
spawncount = spawncount - 1
spawnID = spawnID + 1 //This is initialized as zero in separate code
alien = New PictureBox
With alien
.Name = "Alien" & Str(spawnID)
//location, image, etc.
Next
End With
Controls.Add(alien)
Loop
И в таймере у меня есть этот код, который проверяет, сталкивался ли какой-либо из лазеров игроков (со свойством .tag "L1") с инопланетянином:
Dim number As Integer = 0
For Each picturebox In Controls
If picturebox.tag = "L1" Then
Do Until spawnID = (19 + level)
spawnID = spawnID + 1
If picturebox.bounds.intersectswith((alien & number).Bounds) Then
//Code to be executed when a collision occurs
Exit For
End If
Loop
End If
Next
Я получаю сообщение об ошибке If picturebox.bounds.intersectswith((alien & number).Bounds)
.Там написано, что «Оператор» & «не определен для типов« Picturebox »и« Целое число »»
Есть ли обходной путь или даже альтернатива этому?Или у меня просто нет правильного формата в операторе If?