Anuncios Google

Peticion de revisar un codigo en luaDev

Bueno e aqui mi problema soy relativamente nuevo en lua i me gustaria que me revisarais el Código para ver si hay algun error

function cargar_escenario(k)
	escenario_imagen = image.load("img/escenario/"..k..".png");
	escenario_actual = k
	ini.write("config.ini", "escenario_actual", escenario_actual);
end
function pintar_escenario()
	ini.read("config.ini", "escenario_actual", escenario_actual);
	if escenario_actual == 1 then
		suelo = Image.create(480,10)
		image.clear(suelo,verde)
		personaje1 = Image.create(32,32)
		image.clear(personaje1,blanco)
		verde=Color.new(0,255,0)
		personaje = {}
		personaje.gravedad = 230
		personaje.y = 230
		personaje.x = 50
		personaje.velocidadSalto = 10
		personaje.estadoSalto = "suelo"
		personaje.y = personaje.gravedad
			function controlar_heroe()
				if 	controls.left() then
					personaje.x = personaje.x - 2
				end
				if controls.right() then
					personaje.x = personaje.x + 2
				end
				if controls.cross() and personaje.estadoSalto == "suelo" then
					personaje.estadoSalto = "saltando"
				end
				if personaje.estadoSalto == "saltando" then
					personaje.velocidadSalto = personaje.velocidadSalto - 0.5
					personaje.gravedad = personaje.gravedad - personaje.velocidadSalto
				end
				if personaje.velocidadSalto < 0 then
					personaje.estadoSalto = "cayendo"
				end
				if personaje.gravedad < 230 and personaje.estadoSalto == "cayendo" then
					personaje.velocidadSalto = personaje.velocidadSalto + 0.5
					personaje.gravedad = personaje.gravedad + personaje.velocidadSalto
				end
				if personaje.gravedad == 230 then
					personaje.velocidadSalto = 10
					personaje.estadoSalto = "suelo"
				end
				if personaje.gravedad > 230 then 
					personaje.gravedad = 230 
				end
			end	
			function bordes_1()
 
			end	
		while true do
			controls.read()
			controlar_heroe()
			image.blit(escenario_imagen)
			image.blit(personaje.x,personaje.y,personaje1)
			image.blit(suelo,0,262)
			screen.flip()
		end
	end
end
function came_over()
	game_over = image.create(480,272)
	while true do
		image.blit(0,0,game_over)
		controls.read()
		screen.print(150,30,"GAME OVER")
		screen.print(90,80, "Pulsa X para reiniciar o Circulo para volver al menu")
		--if controls.press("circle") then
			--break
		--end
		if controls.press("cross") then
			reset = 1
			ini.write("config.ini", "escenario_actual", reset);
			pintar_escenario()
		end
		screen.flip()
	end
 
end
function selecion_armas()
	Armas = {Katana,Pistola,Subfusil}
	ImgArmas = {image.load("img/armas/1.png"),image.load("img/armas/2.png"),image.load("img/armas/3.png")}
	var = 1;
	function canviar_arma()
		if controls.press("up") then var = var-1 
		elseif controls.press("down") then var = var+1
		end
	end	
	function limites_arma()
		if var>3 then var=1 
		elseif var<1 then var=3 
		end
	end
	function pintar_arma()
		screen.print(10,23,"<-- "..Armas[var].." -->",1,color.new(255,0,0),0x0);
		image.blit(ImgArmas[var],10,13)
	end
	function Todo_arma()
		canviar_arma()
		limites_arma()
		pintar_arma()
	end
	while true do
		controls.read()
		Todo_arma()
		screen.flip()
	end
end	
function vida()
	rojo = Color.new(255,0,0)
	blanco = Color.new(255,255,255,155)
	barraSalud = {}
	barraSalud.y = 10
	personaje = {}
	personaje.salud = 100
		function barra.vida()
			screen.fillRect(60,13,personaje.salud,barraSalud.y,rojo)
			screen.print(60,23,personaje.salud,blanco)
		end
		if personaje.salud == 0 then
			came_over()
		end	
end
while true do
	controls.read()
	selecion_armas()
	vida()
	pintar_escenario()
	screen.flip()
end



Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

El problema es que usas

El problema es que usas funciones de LuaHM en LuaDEV, acuérdate que en LuaDEV todas las funciones van en minúscula.

function cargar_escenario(k)
	escenario_imagen = image.load("img/escenario/"..k..".png");
	escenario_actual = k
	ini.write("config.ini", "escenario_actual", escenario_actual);
end
function pintar_escenario()
	ini.read("config.ini", "escenario_actual", escenario_actual);
	if escenario_actual == 1 then
		suelo = image.create(480,10)
		image.clear(suelo,verde)
		personaje1 = image.create(32,32)
		image.clear(personaje1,blanco)
		verde=color.new(0,255,0)
		personaje = {}
		personaje.gravedad = 230
		personaje.y = 230
		personaje.x = 50
		personaje.velocidadSalto = 10
		personaje.estadoSalto = "suelo"
		personaje.y = personaje.gravedad
			function controlar_heroe()
				if 	controls.left() then
					personaje.x = personaje.x - 2
				end
				if controls.right() then
					personaje.x = personaje.x + 2
				end
				if controls.cross() and personaje.estadoSalto == "suelo" then
					personaje.estadoSalto = "saltando"
				end
				if personaje.estadoSalto == "saltando" then
					personaje.velocidadSalto = personaje.velocidadSalto - 0.5
					personaje.gravedad = personaje.gravedad - personaje.velocidadSalto
				end
				if personaje.velocidadSalto < 0 then
					personaje.estadoSalto = "cayendo"
				end
				if personaje.gravedad < 230 and personaje.estadoSalto == "cayendo" then
					personaje.velocidadSalto = personaje.velocidadSalto + 0.5
					personaje.gravedad = personaje.gravedad + personaje.velocidadSalto
				end
				if personaje.gravedad == 230 then
					personaje.velocidadSalto = 10
					personaje.estadoSalto = "suelo"
				end
				if personaje.gravedad > 230 then 
					personaje.gravedad = 230 
				end
			end	
			function bordes_1()
 
			end	
		while true do
			controls.read()
			controlar_heroe()
			image.blit(escenario_imagen)
			image.blit(personaje.x,personaje.y,personaje1)
			image.blit(suelo,0,262)
			screen.flip()
		end
	end
end
function came_over()
	game_over = image.create(480,272)
	while true do
		image.blit(0,0,game_over)
		controls.read()
		screen.print(150,30,"GAME OVER")
		screen.print(90,80, "Pulsa X para reiniciar o Circulo para volver al menu")
		--if controls.press("circle") then
			--break
		--end
		if controls.press("cross") then
			reset = 1
			ini.write("config.ini", "escenario_actual", reset);
			pintar_escenario()
		end
		screen.flip()
	end
 
end
function selecion_armas()
	Armas = {Katana,Pistola,Subfusil}
	ImgArmas = {image.load("img/armas/1.png"),image.load("img/armas/2.png"),image.load("img/armas/3.png")}
	var = 1;
	function canviar_arma()
		if controls.press("up") then var = var-1 
		elseif controls.press("down") then var = var+1
		end
	end	
	function limites_arma()
		if var>3 then var=1 
		elseif var<1 then var=3 
		end
	end
	function pintar_arma()
		screen.print(10,23,"<-- "..Armas[var].." -->",1,color.new(255,0,0),0x0);
		image.blit(ImgArmas[var],10,13)
	end
	function Todo_arma()
		canviar_arma()
		limites_arma()
		pintar_arma()
	end
	while true do
		controls.read()
		Todo_arma()
		screen.flip()
	end
end	
function vida()
	rojo = color.new(255,0,0)
	blanco = color.new(255,255,255,155)
	barraSalud = {}
	barraSalud.y = 10
	personaje = {}
	personaje.salud = 100
		function barra.vida()
			draw.fillrect(60,13,personaje.salud,barraSalud.y,rojo)
			screen.print(60,23,personaje.salud,0.77,blanco,0x0)
		end
		if personaje.salud == 0 then
			came_over()
		end	
end
while true do
	controls.read()
	selecion_armas()
	vida()
	pintar_escenario()
	screen.flip()
end

 

...

muchas gracias pero sigo teniendo el mismo error

 

Imagen de Dioni0396

en que linea esta

en que linea esta?

Imagen de Dioni0396

Pues no sera mejor

que lo pruebes y si da error nos digas cual?

primer error

attempt to concate field ? ( a nil value )

Sale porque estás intentando

Sale porque estás intentando imprimir valores inexistentes, en tu caso en la tabla Armas. Llénala con strings:

Armas = {"arma1", "arma2","arma3"}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.