Estoy usando C++ para crear un mapa de teselas para un juego. Mi problema es que quiero llenar una matriz multidimensional de entradas en el constructor del Mapa, pero no está funcionando correctamente. Aquí está mi código en "Map.h" (se eliminó el código irrelevante).poblado de matriz int que es una variable miembro
class Map {
private:
int mapArray[15][20];
};
Y mi código de Map.cpp
Map::Map()
{
mapArray = {
{ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 },
{ 20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 },
{ 40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59 },
{ 60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79 },
{ 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99 },
{ 100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119 },
{ 120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139 },
{ 140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159 },
{ 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179 },
{ 180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199 },
{ 200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219 },
{ 220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239 },
{ 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259 },
{ 260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279 },
{ 280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299 }
};
}
PS. crear el mapArray localmente, dentro de una función miembro usando int mapArray [15] [20] y poblarlo funciona bien, parece que no puedo hacer que se llene en el constructor, con una variable miembro.
PPS. Muy oxidado con C++, por favor sea gentil.
¿Qué estoy haciendo mal?
Gracias, James.
Si no va a cambiar los valores de la matriz de un objeto a otro, lo que realmente necesita es una matriz de miembros * static *. Vea la respuesta de Mads. – AnT
Si son todos números secuenciales, puede ser más simple simplemente escribir un bucle (una matriz bidimensional es contigua en la memoria, por lo que ni siquiera necesita bucles anidados). (Si estos valores no van a cambiar, puede ser más económico calcularlos que buscarlos). – UncleBens
No siempre serán secuenciales. Son solo valores de prueba. –