Hola, pues me gustaria crear un juego como Terraria o Starbound, pues empeze por crear un mapa aleatorio, el problema es que LuaDev me da un error, y no se como arreglarlo.
El error que me dice es: script.lua:15. attempt to index field ? (a nil value)
SOLUCION: esta en los comentarios, dejo el codigo actualiza para quien lo necesite junto a dos capturas.
Aqui teneis el codigo:
script.lua
dofile("bloques.lua") mapa = {} screenshot = "" for y = 0,26 do mapa[y] = {} for x = 0, 47 do mapa[y][x] = math.random(0,9) end end while true do controls.read() for Y = 0,26 do for X = 0,47 do bloque[mapa[Y][X]]:blit(X*10,Y*10) end end if controls.press("r") then fallo() end if controls.press("l") then screenshot = screen.toimage() image.save(screenshot,"screenshot.png") end screen.flip() end
bloques.lua
bloque = {} bloque[0] = image.load("img/Bloque Amarillo.png") bloque[1] = image.load("img/Bloque Azul.png") bloque[2] = image.load("img/Bloque Blanco.png") bloque[3] = image.load("img/Bloque Gris.png") bloque[4] = image.load("img/Bloque Lima.png") bloque[5] = image.load("img/Bloque Morado.png") bloque[6] = image.load("img/Bloque Naranja.png") bloque[7] = image.load("img/Bloque Negro.png") bloque[8] = image.load("img/Bloque Purpura.png") bloque[9] = image.load("img/Bloque Rojo.png")
Las imagenes que cargo son imagenes de 10x10 pixel de colores.
CAPTURAS:
Saludos y Gracias.
Programador en C++ y Lua.
Creando un Juego con Unity3D para Android.
Deseo poder crear mi propio IDE para C++ y un Motor de Videojuegos.
Mmm...
Primero, hace tiempo que no me paso por aqui y que no toco LuaDEV asi que voy a intentar no responder alguna tontería.
Aparte de esto yo no veo otro fallo
Saludos!
No me habia fijado en el BLEN
No me habia fijado en el BLEND, pero en realidad iba a poner un BLIT, lo cambiare ahora mismo, de todas forma creo que si no pones un valor ALPHA LuaDEV lo interpreta como por defecto que es 255 (no se exactamente), probare cambiarlo a ANCII.
Gracias y Feliz Navidad.
Programador en C++ y Lua.
Creando un Juego con Unity3D para Android.
Deseo poder crear mi propio IDE para C++ y un Motor de Videojuegos.
Checa aquí
Primero debes declarar que mapa[y] es una tabla, así:
Gracias
Gracias a ti pude solucionarlo, actualizare el code del post y pondre unas capturas.
Gracias y Feliz Navidad.
De hecho
Estas variables aquí:
están de más, ya que con el for se inicializan (es Luadev y no C xDD), así ya puedes quitar el mapa.lua y declarar la tabla mapa={} antes del primer For en el script.lua
Un apunte, en C tambien se
Un apunte, en C tambien se puede declarar la variable en el bucle for sin necesidad de que esté declarada fuera, en la misma "cabecera" del for puedes.
No, eso es solo en C++, en C
No, eso es solo en C++, en C hay que declararla antes.
Saludos.
Depende de la versión del
Depende de la versión del estandar que uses puedes o no.
C?
Me resolveis la duda? Esto es válido en C o solo en ANSI C o C++
Saludos!
En ANSI C no es válido, el
En ANSI C no es válido, el estándar c99 (creo que era) es valido para C. Y en C++ es correcto.
Mm
Yo solo lo he probado en C++, en C no se puede.
Claro
Pero yo a lo que me referia exactamente es que sobraba en Luadev iniciar las dos variables en 0 (Como si las estuvieras declarando en C) y despues en los for volverlas a inicializar...
Ya lo e actualizado
Ya lo e actualizado, gracias de nuevo.