Como escribir correctamente siguiente codigo C# en Visual Basic 2013

Iniciado por Tazmania40, 1 Febrero 2018, 12:38 PM

0 Miembros y 1 Visitante están viendo este tema.

Tazmania40

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

Código (csharp) [Seleccionar]

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


Tazmania40

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

Código (vbnet) [Seleccionar]

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