Buenas, estoy intentando traducir un ejemplo de C# para XNA donde trata una colisión por píxel entre 2 rectángulos. En C# para XNA me funciona correctamente, pero en VB2013 que también permite la librerias de XNA y ya he realizado varios programas sin problemas, tiene las mismas sentencias solo que cambia la sintaxis. Paso el código y en negrita donde muestra el problema, la línea del error es "Player.GetData(texturaPlayer), me imagino que este método lo que hace es copiar todos los colores de la textura. Estoy probando de muchas formas, inicializando la instancia de todos los array y no doy con ello.
Mensaje de error al ejecutar: "The size of the data passed in is too large or too small for this resource."
a la función que llamo luego es:
El código en C# para XNA donde funciona sin problemas es:
Muchos pensaréis que porque no lo programo en C# para XNA y aunque lo entiendo, soy de los que le gusta seguir con el mismo lenguaje y el juego que estoy realizando lo quiero hacer en Visual Basic 2013 con XNA.
A ver si hay alguien que me pueda echar una mano y así poder continuar con el juego, suelo empezar por lo que me resulta más difícil e intento resolver mediante pequeños ejemplos todas las posibles dificultades antes de comenzar el proyecto.
Muchas gracias y saludos
Mensaje de error al ejecutar: "The size of the data passed in is too large or too small for this resource."
Código (vbnet) [Seleccionar]
Private Player As Texture2D
Private rectPlayer As Rectangle
Private texturaPlayer() As Color
Protected Overrides Sub LoadContent()
' Carga textura Jugador 1 y copia el total número colores
Player = Content.Load(Of Texture2D)("Imagenes\Sprite1")
ReDim texturaPlayer(Player.Width * Player.Height)
Player.GetData(texturaPlayer)
...
End Sub
a la función que llamo luego es:
Código (vbnet) [Seleccionar]
If intersectPixel(rectPlayer, texturaPlayer, rectRoca, texturaRoca) Then
...
El código en C# para XNA donde funciona sin problemas es:
Código (csharp) [Seleccionar]
Texture2D Player; // Sprite del Jugador1
Rectangle rectPlayer; // Rectángulo Jugador1 (colisión)
Color[] texturaPlayer; // Colores Jugador1
protected override void LoadContent()
{
// Carga textura Jugador 1 y copia el total numero colores
Player = Content.Load<Texture2D>("Imagenes/Sprite1");
texturaPlayer = new Color[Player.Width * Player.Height];
Player.GetData(texturaPlayer);
...
}
Muchos pensaréis que porque no lo programo en C# para XNA y aunque lo entiendo, soy de los que le gusta seguir con el mismo lenguaje y el juego que estoy realizando lo quiero hacer en Visual Basic 2013 con XNA.
A ver si hay alguien que me pueda echar una mano y así poder continuar con el juego, suelo empezar por lo que me resulta más difícil e intento resolver mediante pequeños ejemplos todas las posibles dificultades antes de comenzar el proyecto.
Muchas gracias y saludos