Buenas, estoy con una parte de código que no consigo traducir a VB.net, en C# funciona sin problemas. He utilizado el conversor http://converter.telerik.com pero se ve que ya no funciona, también otros conversores online pero dan problemas o el código escrito no compara correctamente la colisión, ya que se trata de colisiones entre 2 objetos por pixel.
Si podéis echarme una mano tan solo con este código o bien algún conversor que funcione correctamente de C# a VB.NET
if (((bitsA[(x - texture1Rectangle.X) + (y - texture1Rectangle.Y) * texture1Rectangle.Width] & 0xFF000000) >> 24) > 20 &&
((bitsB[(x - texture2Rectangle.X) + (y - texture2Rectangle.Y) * texture2Rectangle.Width] & 0xFF000000) >> 24) > 20)
{
PorColisionPixel = true;
...
}
El fallo se presenta en el operador de desplazamiento o número hexadecimal.
Como nota decir que el código lo estoy realizando con XNA 4.0 en Visual Basic 2013, donde ya realicé el programa en XNA 4.0 con C# funcionando correctamente la colisión por pixel y es ahora donde he traducido todo el programa y solo me falta esta parte de código que no consigo que funcione en VB.net.
Muchas gracias y saludos
Me respondo a mi mismo porque ya he encontrado la solución.
He encontrado otro traductor y aunque tampoco lo dejaba exacto, modificando ya lo solucioné
https://www.carlosag.net/tools/codetranslator
If (((bitsA((x - texture1Rectangle.X) + (y - texture1Rectangle.Y) * texture1Rectangle.Width) And &HFF000000) >> 24) > 20 AndAlso
((bitsB((x - texture2Rectangle.X) + (y - texture2Rectangle.Y) * texture2Rectangle.Width) And &HFF000000) >> 24) > 20) Then
PorColisionPixel = True
.....
End If
El traductor te cambia el número a decimal "4278190080" (QUE TAMBIEN FUNCIONA) pero el operador de desplazamiento >> te lo cambia por +, además de varios paréntesis que no hacen falta y hay es donde fallaba en tiempo de ejecución que no hacía bien la comprobación por pixel.
Si sabéis de algún traductor de C# a VB.net y viceversa más actualizado y que sea online se agradece. Gracias y salu2