Anuncios Google

Error enorme de luadev(Cierren el post)

(Cierren el post)

La solucion la ha puesto Chimecho, Gracias chimecho

 


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.
Imagen de Cristian Funky

Los hilos no se cierran

Los hilos no se cierran cuando se resuelve la duda. Sólo se cierran cuando incumplen (demasiado) las normas en algunos casos.

Imagen de Chimecho

mi nick u.u

mi nick es Chimecho! no se pq la gente se empeña en escribirlo mal u.u

Imagen de Dioni0396

ups

lo siento, es que pega chimencho, pero ya esta editado

Eso se puede optimizar a

Eso se puede optimizar a saco, cosa que no haré porqué ya será la cuarta o quinta vez que hago un juego de esos a alguien.

Imagen de Dioni0396

Tampoco te he pedido que lo hagas

...

Queria decir optimizar/hacer

Queria decir optimizar/hacer que funcione. Y por cierto ya es hora de que pares de hacer preguntas por cada duda que tienes, ¿no?

Imagen de Dioni0396

Este es un foro

de ayuda. Tranquilo no voy ha hacer mas

Imagen de Chimecho

Código enoooorme a la vista xD

No hay que complicarse haciendo una función que reemplace a cada línea, ya que simplemente complica su lectura y ocupa más espacio, no en RAM, sino espacio físico. Cuando veas codes muuuuuy largos para algo sencillo, es que algo está de más.

Por ejemplo, veo que tienes una función para cada pregunta/respuesta, funciones del tipo preguntaXY() donde X es la pregunta y Y la respuesta... para esto puedes usar arrays en dos dimensiones, de tal manera que quede una sola tabla del tipo Respuesta[X][Y].

El fallo que encontré, es este: image.blit("flecha.png",selectorZ[1].x,selectorZ[1].y), las imágenes tienes que cargarlas y almacenarlas en una variable para poderlas usar, no puedes blitear directamente desde la ms. En tu caso sería Selector, no "flecha.png"

Y también que las funciones respuestaX no devuelven nada, sin embargo haces un "if controls.press("cross") and respuesta1() then" donde respuestaX será nil siempre ya que no veo ningún return...

--Prueba tu oido
 
mostrar=false
AB=false
BC=false
Acertaste = "Acertaste!, presiona R para continuar"
Fallaste = "Fallaste"
 
negro = color.new(0,0,0)
 
Fondo = image.load("fondo.png")
Selector = image.load("flecha.png")
 
altoPantalla = 272 - Selector:width()
 
pactual = 1 -- pregunta actual, usaremos esto para saber en que pregunta vamos
ractual = 1 -- para elegir la respuesta
acierto = false -- esta variable, para saber si acertó o no
 
Pregunta = { }
Pregunta[1] = "¿Como se llama el cantante de esta cancion?"
Pregunta[2] = "¿El cantante Madnass, como se llama esta cancion?"
Pregunta[3] = "¿Como se llama el grupo de esta cancion?"
 
Respuesta = {}
 
Respuesta[1] = { }
Respuesta[1][1] = "Chiddy bang"
Respuesta[1][2] = "Eminem"
Respuesta[1][3] = "Psprekiem"
Respuesta[1][4] = "Lil wayne"
Respuesta[1].correct = 1 -- la correcta, es la 1º, usaremos esta variable para comparar luego con ractual, si son iguales, acierta
 
Respuesta[2] = { }
Respuesta[2][1] = "Ni idea"
Respuesta[2][2] = "Es un remix?"
Respuesta[2][3] = "Mi lugar"
Respuesta[2][4] = "El origen"
Respuesta[2].correct = 3
 
Respuesta[3] = { } 
Respuesta[3][1] = "hum... me suena a chili con carnage"
Respuesta[3][2] = "Nautilus?"
Respuesta[3][3] = "Deliquents habits"
Respuesta[3][4] = "Violadores del verso"
Respuesta[3].correct = 3
 
selectorZ = { }
selectorZ[1] = { x = 5, y = 10}
 
while true do
	--screen.clear(negro) -- esto no hace falta, a menos de que negro, no sea 0,0,0, ya que en el flip, se limpia la pantalla precisamente de ese color
	image.blit(Fondo,0,0) -- supongo que tu fondo mide 480 x 272, si es así, pongo 0,0 ya que las imágenes se muestran desde su esquina superior derecha ubicada en el punto que le das al blit (en este caso, 0,0)
	controls.read()
	-- no se muy bien como has puesto el selector, así que lo dejo tal como está
	if controls.down() and selectorZ[1].y < altoPantalla then
		selectorZ[1].y = selectorZ[1].y + 40
	end
	if controls.up() and selectorZ[1].y > 0 then
		selectorZ[1].y = selectorZ[1].y - 40 
	end
 
	-- akí, añado código para seleccionar la respuesta limitando la cantidad de opciones, para que no se salga de la tabla
	if controls.press("up") then
		ract = math.max(ract - 1, 1) -- aquí lo que hago es, resto 1 a ract, si el resultado, es menor que el segundo número (en nuestro caso es 1), entonces, que se quede con el 1
	elseif controls.press("down") then
		ract = math.min(ract + 1, #Respuesta[pactual]) -- acá otro límite, en este caso suma 1, si ese resultado se pasa de la cantidad de respuestas que hay en la tabla, entonces se queda con el número de elementos de la tabla
	end
 
	screen.print(200,100,Pregunta[pactual])
 
	-- comenté todo esto porque ya está hecho en el for
	--screen.print(10,10,Respuesta[actual][1])
	--screen.print(10,50,Respuesta[actual][2])
	--screen.print(10,90,Respuesta[actual][3])
	--screen.print(10,130,Respuesta[actual][4])
 
	for i=1,#Respuesta[pactual] do -- esto, es un ciclo for, usa un índice que le he puesto i, lo que hace es, ir desde el 1 que puse, hasta terminar de recorrer la tabla (#tabla devuelve la cantidad de elementos de la misma)
		screen.print(10,10+(i-1)*40,Respuesta[pactual][i]) -- fíjate como cambio la coordenada Y para que las respuestas vayan separadas 40 píxeles cada una, 10+(i-1)*40 es la fórmula de lo que está allí arriba. Veamos...
		-- 1º vuelta, i vale 1, 10+(i-1)*40 = 10+(0)*40 = 10
		-- 2º vuelta, i vale 2, 10+(i-1)*40 = 10+(1)*40 = 10+40 = 50
		-- 3º vuelta, i vale 3, 10+(i-1)*40 = 10+(2)*40 = 10+80 = 90
		-- 4º vuelta, i vale 4, 10+(i-1)*40 = 10+(3)*40 = 10+120 = 130
	end
 
	image.blit(Selector,selectorZ[1].x,selectorZ[1].y)
 
	if controls.press("cross") and ractual == Respuesta[pactual].correct then -- si es la respuesta correcta...
		-- creo que las siguientes tres líneas, deberías meterlas en otro bucle, pero, seguiré la estructura tal y como la tenías
		screen.clear(negro)
		screen.print(300,200,Acertaste) -- bingo!
		acierto = true -- acertó!
		-- explico, lo suyo sería hacer algo así, en lugar de las líneas de arriba:
		--[[
			while true do
				controls.read()
				screen.print(300,200,Acertaste) -- bingo!
				if controls.press("r") then
					pactual = pactual + 1
					break -- rompemos el bucle (forzamos la salida)
				end
				screen.flip()
			end
			-- y con eso ya no hay necesidad de la variable acierto, ni del código de abajo cuando presione r
		--]]
	else -- sino
		screen.clear(negro)
		screen.print(300,200,Fallaste) -- :(
		-- akí también debería ser un bucle
	end
 
	-- con el bucle, este if ya no es necesario
	if controls.press("r") and acierto then -- si presionó R y acertó
		pactual = pactual + 1 -- siguiente pregunta! >:)
		acierto = false -- claro, aun ni responde la siguiente pregunta
	end
	screen.flip()
end

Allí he dejado el code corregido, y con algunos ajustes, léelo despacio, y si algo no comprendes del todo, coméntalo ;)

Ah, y una cosa más, acostumbren a identar el código, que el TAB no muerde...

 

Saludos!



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de Dioni0396

fiuuuu

Luego lo vere, pero dime que es pactual? y ractual? y ract?

Hasta luego

Gracias por todo

Imagen de Chimecho

:S

jaja me equivoqué, donde diga ract, es ractual, ahi arribita al comienzo comenté que eran

Imagen de NauTiluS1

Edito: Pon while true do en

Edito:

Pon while true do en cada funcion de principio y screen.flip(), o nunca se pondran los screen.print

Ej

function nivel1()
while true do
screen.printxxxxxxxx
screen.flip()
end


Follow me twitter nautilus1_jmccu!!
Sony, ya a nadie le interesa tus UMD si alguien compra una psp es por nosotros los coders. Madura y has un FW que haga la diferencia y anime a las personas en comprar un PSP

Imagen de Chimecho

no

si fuera así tendría un while, un flip y un end por cada print, basta con tan solo imprimirlos, y al final un sólo flip para mostrar los cambios



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de Dioni0396

entonces

cuantos end tengo que poner!???

Imagen de NauTiluS1

Depende de cuantas funciones

Depende de cuantas funciones etc tengas eso no creo que tenga que explicarlo

Imagen de Dioni0396

tengo que meterle

20 ends al final del codigo? no?

Imagen de Psprekiem

No , creo que funciona , por

No , creo que funciona , por cada 

If ... then ...

un end

I por cada while true do .. otro end 

Es decir si ienes un while true do i 20 if ...then .... son 21 end xD

Creo .. no estoi del todo seguro ..

Saludos


Isaac Newton: "Lo que sabemos es una gota de agua; lo que ignoramos es el océano".

Imagen de NauTiluS1

Creo que el script esta muy

Creo que el script esta muy cargado

Intenta esto pon todas las funciones en otro script y el script principal de principio pon dofile("funciones") "funciones" se llamará tu otro script.


Follow me twitter nautilus1_jmccu!!
Sony, ya a nadie le interesa tus UMD si alguien compra una psp es por nosotros los coders. Madura y has un FW que haga la diferencia y anime a las personas en comprar un PSP

Imagen de -chus-

No creo

No creo que sea por que esta cargado el script el mio tiene mas de 20.000 lineas y no me pasa eso (debo simplificarlo XD) seria mejor que diera mas detalles de como es que sea apaga la psp, en que momento, una duda por que tanto screen.clear(negro)?


                                          Mis Homebrew´s

 http://psp.scenebeta.com/noticia/memorama-games#comment-803033


Imagen de Dioni0396

Vale

se apaga antes de cargarse, y los screen clear es para cuando pulse las "preguntas" se quiten para que solo se quede la palanra "Acertaste!", duda que puse en otro post, hay alguna forma de hacerlo sin tanto screen.clear?

Imagen de Dioni0396

Vale

pero como lo cargo?

En el while true do que pongo para que se cargue?

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.