Colisão VB.NET entre caixas de imagem

Eu estou tentando fazer um jogo simples e eu preciso saber se picturebox1 (meu personagem) colide com outras pictureboxes (as paredes).

Eu já trabalhei como fazer isso, mas só funciona com o meu personagem e 1 outro picturebox por exemplo:

If picturebox1.bounds.intersectWith(picturebox2.bounds) then
   collision = true
end if

Eu tentei fazer algo assim:

For Each PictureBox In Me.Controls
  If PictureBox1.Bounds.IntersectsWith(PictureBox.Bounds) Then
     collision = True
  Else : collision = False
  End If
Next

Mas então a colisão booleana seria sempre verdadeira porque o picturebox1 (o personagem) sempre se cruza consigo mesmo.

Então eu mudei o picturebox em um painel e o código parece o seguinte:

For Each PictureBox In Me.Controls
  If Panel1.Bounds.IntersectsWith(PictureBox.Bounds) Then
     collision = True
  Else : collision = False
  End If
Next

Mas funciona apenas com uma única caixa de imagem e não com todas as caixas de imagem no formulário. Eu não entendo porque ... E se alguém sabe como adicionar uma exceção no para cada função para que eu possa manter meu picturebox1

algo assim talvez

For each picturebox(except(picturebox1)) in me.controls

porque eu procurei por isso, mas não encontrei nada ...

Qualquer ajuda é muito apreciada, obrigado!

questionAnswers(1)

yourAnswerToTheQuestion