Anuncios Google

2 Dudas LuaDev(Solucionado)

1: ¿Cuál es el error? (Esta es la nueva duda)

HM = io.open("Data/Files/INFO.RCM","r")
BUS = HM:read(3)
FW = HM:read(4)
BRIGHT = HM:read(2)
HM:close()

Me dice: Attemp to index global HM(a nil value)

2: ¿Por qué me dice que no es válido?

Saarion.x = 100
Saarion.y = 240
 
Saarion.x = math.min(math.max(0, Saarion.x), 480-32)
Saarion.y = math.min(math.max(0, Saarion.y), 272-48)

Gracias a todos


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 nuevo error seguro es

El nuevo error seguro es porque no existe el archivo que estás tratando de abrir, revisa que la ruta sea correcta.

Imagen de m.rr

Sí tienes razón era eso.

Sí tienes razón era eso.

Veamos...

Primero que nada... NO respondas a tus comentarios, se te contestará en cuanto se pueda (en el mundo de la programación la desesperación no te va llevar a ningún lado) ¬¬

Segundo: Si no mencionas el error que te devuelve LuaDEV, y la línea en que se produce, cuesta más trabajo ayudar. Si te dice "script.lua: 12: attempt to compare number .... bla, bla, bla" eso es lo que debes reportar.

Y tercero: estás intentando escribir en un archivo que abriste en modo de lectura, es decir, imposible. Lo que debes hacer es: primero abrir en modo de lectura, leer lo que vayas a leer, cerrar el archivo, abrirlo en modo de escritura, escribir, y guardar. Mírate la documentación si no sabes cómo se hace algún paso :P

EDITO: Se me olvidaba... en tu 2a duda, te pone que no es válido porque Saarion no lo declaraste como tabla. Antes de las líneas que pusiste, coloca Saarion = {} y con eso debería ir.

Imagen de m.rr

Vale, gracias. Pero en el

Vale, gracias. Pero en el segundo el error es que no vale el segundo valor de math.max y el primero ya esta gracias

Probaste como te dije?

Probaste como te dije? (insisto... si no me dices el error tal cual poco puedo hacer)

Imagen de Dioni0396

el error 2

es porque usas el mismo nombre de variables para 2 cosas.

Imagen de m.rr

Eh?Sacado del tuto de

Eh?

Sacado del tuto de Chime:

link = {}
link["stay"]={}
link["walk"]={}
 
link.stay.up = image.load("sprites/link_stay_up.png")
link["stay"].down = image.load("sprites/link_stay_down.png")
link.stay["right"] = image.load("sprites/link_stay_right.png")
link["stay"]["left"] = image.load("sprites/link_stay_left.png")
 
rawset(link["walk"],"up",image.loadsprite("sprites/link_walk_up.png",22,27))
rawset(link["walk"],"down",image.loadsprite("sprites/link_walk_down.png",22,27))
rawset(link["walk"],"right",image.loadsprite("sprites/link_walk_right.png",22,27))
rawset(link["walk"],"left",image.loadsprite("sprites/link_walk_left.png",22,27))
 
status = "stay" -- al principio estará quieto, luego cuando se presione algo pasará a "walk" y caminará
direction = "down" -- que mire hacia abajo, asi "nos ve" xD, los otros serian "up", "left" y "right"
x = 10<------
y = 10<------
anim = 0 -- cuadro de la animación actual, cuenta desde 0, e irá hasta 10
 
while true do
	controls.read()
 
	if controls.up() or controls.down() or controls.left() or controls.right() then
		anim = anim + 0.2
		status = "walk"
		if math.floor(anim)>9 then
			anim = 0
		end
	else
		anim = 0
		status = "stay"
	end
 
	if controls.up() then
		y=y-1
		direction = "up"
	elseif controls.down() then
		y=y+1
		direction = "down"
	elseif controls.right() then
		x=x+1
		direction = "right"
	elseif controls.left() then
		x=x-1
		direction = "left"
	end
 
	if status=="walk" then
		link[status][direction]:setframe(anim)
	end
 
	x = math.min(math.max(0,x), 480-22)<----------
	y = math.min(math.max(0,y), 272-27)<----------
 
	link[status][direction]:blit(x,y)
 
	screen.flip()
	if controls.l() and controls.cross() then
		broke()
	end
end

EDITADO: Sabéis algo?

Imagen de markef

No

No entiendo nada del code, hay funciones fuera del bucle colocados de una manera sumamente rara del módulo io... ¿Que quieres conseguir?


Dicen que soy programador... Eso dicen.

Imagen de m.rr

Pues la idea es que pueda

Pues la idea es que pueda poner el os.nick dentro del Fichero. Y luego imprimir lo que hay dentro del fichero en pantalla

 

Imagen de markef

Entonces...

Entonces:

-- Esta sería una forma de hacerlo teniendo en cuenta que está guardado el nombre del usuario en un archivo .txt
 
blanco = color.new(255,255,255);
rojo = color.new(255,0,0);
 
nick_u = io.open("nick.txt");
nick = nick_u:read("*a");
io.close(nick_u);
 
 
while (1) do
 
screen.print(100,100,"Nick de usuario: "..nick,0.7,blanco,rojo);
 
screen.flip();
end;
 
-- Otra forma más rapida de hacerlo y con menos code sería
 
blanco = color.new(255,255,255);
rojo = color.new(255,0,0);
 
while (1) do
 
screen.print(100,100,"Nick de usuario: "..os.nick(),0.7,blanco,rojo);
 
screen.flip();
end;
 

Salu2! :) 


Dicen que soy programador... Eso dicen.

Imagen de m.rr

Otra cosa, para escribir? en

Otra cosa, para escribir? en el txt

Imagen de markef

Revisa

Revisa la docu, io.write
(file fd,

....)

Parámetros:
fd  Descriptor de archivo previamente abierto. ...  Cantidad variable de argumentos extra, que pueden ser números o strings.

Devuelve:
Nada.


Dicen que soy programador... Eso dicen.

Imagen de m.rr

Si ya la he revisado, pero no

Si ya la he revisado, pero no me va puse el write en el post.

EDITADO: Me sique sin funcionar...

Imagen de m.rr

La que quería era la primera

La que quería era la primera la segunda era muy fácil.

Imagen de m.rr

Nadie?

Nadie?

Imagen de jorge_97

By Jorge_97

Di que error te da en el primero...

Imagen de m.rr

2º línea

2º línea

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.