Anuncios Google

Error LuaDev (Resuelto)

Pues estamos m.rr y yo haciendo un juego y por ahora tenemos los créditos hechos pero lo que pasa es que se me queda colgada la PSP al ejecutarlo.

---Créditos
---Autor: m.rr & Tutos14
amarillo = color.new(255,000,255)
 
for i = 250,-220,-0.5 do
 
screen.print(180,0+i,"Título",amarillo)
 
screen.print(135,60+i,"Coders: m.rr, Tutos14")
 
end
end

Mi idea es que bajen los creditos hacia abajo

¿Cual es el problema?




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 m.rr

Te has pasado con un end y

Te has pasado con un end y tienes que poner screen.flip()

Imagen de Tutos14

Otra duda, si quiero hacer

Otra duda, si quiero hacer que primero baje un y despues otro lo debo hacer asi:

---Créditos
---Autor: m.rr & Tutos14
 
amarillo = color.new(255,255,0)
y=-10 
x=-10
 
while true do
controls.read()
 
y=y+1
screen.print(180,y,"Título",amarillo)
if y == 272 then
x=x+1
screen.print(135,y,"Coders: m.rr, Tutos14")
 
screen.flip()
end

??



Pero de que sirve que hagas

Pero de que sirve que hagas una condición y pongas una variable x, si no la usaste en ningún lado? =/

Te estás liando mucho, en mi opinión lo mejor es que desarrolles una función que mueva los textos, que los vaya tomando de una tabla (es lo más sencillo) algo como: if y == 272 then --Tomo el texto que sigue (si existe), y lo bliteo xDD end

Imagen de Tutos14

Haber si lo he

Haber si lo he entendido

fuction movertexto()
 
if y == 272 then
screen.print(135,y,"Coders: m.rr, Tutos14")
 
end
 
amarillo = color.new(255,255,0)
y=-10 
x=-10
 
while true do
controls.read()
 
y=y+1
screen.print(180,y,"Título",amarillo)
movertexto()
 
screen.flip()
end

Creo que esta mal aunque no te he entendido muy bien ;(



Yo en realidad me refería a

Yo en realidad me refería a algo así...

mensajes = {"texto1", "texto2", "texto3","y los que necesites xD"}
y=-10 --aquí empieza... igual se puede mover :P
current = 1 --Empezará imprimiendo el texto 1
function movertxt()
--Imprimo el mensaje, bien centrado en pantalla (lo puedes poner donde sea xD):
  screen.print(240-math.floor(screen.textwidth(mensajes[current])/2),y,mensajes[current])
    y = y + 1 --Puede ser otro número, depende la velocidad que quieras
      if y==272 then  --Si ya salió el mensaje de la pantalla... preparo el siguiente:
        y = -10  --Vuelvo al inicio
          if mensaje[current + 1] then current = current + 1 else current = 1 end --Con esto verifico si existe el siguiente mensaje. Si existe, se blitea. Si no, vuelvo al inicio y bliteo el 1ro
      end
end
 
while true do
--Fondo, si lo hay  
  movertxt()  --Texto que se mueve =D
    --alguna condición aquí para salir de los créditos
  screen.flip()  --Y flip! xD
end

No sé si funcione, no lo probé, pero la idea se entiende creo yo ;)

Imagen de Tutos14

Gracias por comentar pero la

Gracias por comentar pero la verdad es que hay cosas que no las entiendo ;(

Bueno, eso hubieras dicho

Bueno, eso hubieras dicho antes xDD

En fin... no tengo ningún inconveniente en tratar de explicarte lo que no entiendas (no es que yo mismo lo entienda completamente, pero trataré xD), por aquí o por privado.

Mi recomendación es, que guardes esa función, hasta que tu conocimiento te permita entenderla (es muy, muy sencilla, ya lo verás después)

Saludos, y disculpa si de alguna manera te ha ofendido el comentario (este o el anterior xD).

Imagen de Tutos14

xD, no tranquilo. Pues lo que

xD, no tranquilo.

Pues lo que no entiendo es esto:

screen.print(240-math.floor(screen.textwidth(mensajes[current])/2),y,mensajes[current])

Otra cosa

¿Current que es lo que hace?

¿Hacer la primera opcion que hay en la tabla?

 



Vale

Te lo desgloso:

  • math.floor --> Redondea hacia abajo. Por ejemplo, si le pongo 3.5 a esa función, me regresará 3. La uso para tener una coordenada entera para imprimir el texto (seguir leyendo, que no va sola xD)
  • screen.textwidth --> te regresa el ancho en pixeles que ocuparía un texto cualquiera que indiques. Para qué usarla? Pues para tener el texto centrado. Me explico:
    240 pix es la mitad de la pantalla, y quiero que el texto esté centrado. Entonces, a 240 le tengo que restar LA MITAD del ancho que ocupe el texto que se va imprimir (no todos ocupan el mismo ancho, por eso no uso una coordenada fija).
  • mensajes[current] --> es el mensaje que se va imprimir. current es un número, que le indica a la función cuál texto de la tabla debe procesar (valdrá 1,2,3... hasta el número de mensajes que metas a la tabla)
Imagen de AitorDB

By Aitor

Pero el Texto tambien podria centrarse usando el parametro "center" y imprimiendo directamente en coordenadas x 240, que es a las que se centraria el texto. Salu2


Sígueme en Twitter: @Aitor_db

Imagen de Tutos14

No he terminado de entenderlo

No he terminado de entenderlo pero espero que algun dia llegue a entenderlo xD

Optare por una opción mas facil ;)

Detodas formas, gracias



Imagen de Dioni0396

Current

es como un numero que se va añadiendo. Es dificil de explicar.

es como usar a en un for;

for a=0,3 do

print(Tabla[a])

end

Imagen de jorge_97

By Jorge_97

current es una variable ;)

No le metais mas cosas de las que necesita de momento porque...

...no puede asimirlo todo y al final se queda sin nada :(

Lo digo por experiencia

Salu2


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de jorge_97

By Jorge_97

:o Rober creo que eso yas es meterle demasiada caña al chico xD

Mejor que vaya poco a poco.

Ahi abajo te lo deje TUTOS un poco más sencillo

Salu2


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Tutos14

Si porque la verdad yevo poco

Si porque la verdad yevo poco tiempo programando xD, mis conocimientos son basicos.

Imagen de jorge_97

By Jorge_97

Bueno aqui te lo dejo semi-explicado:

--Creamos las variables ("x" es innecesaria asi que la quitamos)
 
amarillo = color.new(255,255,0)
y=-10 
 
--Iniciamos el bucle
while true do
--No pongo (controls.read, porque no usaremos los controles, pero acostumbra ponerlo ;)
 
--Aumentamos el valor de la coordenada (Bajamos el texto)
y=y+1
 
 
--Mostramos los textos
screen.print(180,y,"Título",amarillo)
 
--OJO: Lo mostramos 272 pixeles más arriba para que cuando el screen de arriba se salga este aparecerá.
screen.print(135,y-272,"Coders: m.rr, Tutos14")
 
--Actualizamos la pantalla y cerramos bucle.
screen.flip()
end
 
--[[
ANOTACION: Repasa los primeros TUTOS de chimecho y entiendelos bien. También intenta saltarte pasos. Hasta que no domines esto no pases a las funciones
Esta es mi recomendacion tu ya haz lo que quieras =)
--]]


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Tutos14

Muchas gracias, este lo he

Muchas gracias, este lo he entendido a la perfección ;)

Otra cosa,¿Porque esta mal el que yo he hecho al principio de todo?

Imagen de jorge_97

By Jorge_97

Bien pues usa ese. De los que te han puesto es el mas sencillo y si lo entiendes pues perfecto.


Otra cosa,¿Porque esta mal el que yo he hecho al principio de todo?

 

---Créditos
---Autor: m.rr & Tutos14
 
amarillo = color.new(255,255,0)
y=-10 
x=-10
 
while true do
controls.read()
 
y=y+1
screen.print(180,y,"Título",amarillo)
if y == 272 then
x=x+1
screen.print(135,y,"Coders: m.rr, Tutos14")
 
screen.flip()
end

 

Si te refieres a ese

  1. Falta un END
  2. No usas una variable, la variable "x".

 

Aqui te lo dejo corregido:

 

---Créditos
---Autor: m.rr & Tutos14
 
amarillo = color.new(255,255,0)
y=-10 
x=-10
 
while true do
controls.read()
 
y=y+1
screen.print(180,y,"Título",amarillo)
if y > 272 then
x=x+1
screen.print(135,x,"Coders: m.rr, Tutos14")
end
screen.flip()
end



Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Tutos14

Esa no, me referia al

Esa no, me referia al principio de todo.

En cuanto la variable X es porque lo escribi el Code rápido y se me paso xD

Imagen de jorge_97

By Jorge_97

Ok vale pues te explico esta tambien no hay problema:

---Créditos
---Autor: m.rr & Tutos14
amarillo = color.new(255,000,255)
 
for i = 250,-220,-0.5 do
 
screen.print(180,0+i,"Título",amarillo)
 
screen.print(135,60+i,"Coders: m.rr, Tutos14")
 
end
end

 

Te lo dejo con comentarios:

 

---Créditos
---Autor: m.rr & Tutos14
--Amarillo es (255,255,0)
amarillo = color.new(255,000,255)
 
--Este for es correcto pero no lo uses aun... 
 
--Respecto a lo que queda de code pues te sobra un end...
--Chimecho dice que es correcto ... alla tu yo personalmente prefiero ponerle gastar dos lineas mas usando el bucle while...
for i = 250,-220,-0.5 do
 
 
screen.print(180,0+i,"Título",amarillo)
 
screen.print(135,60+i,"Coders: m.rr, Tutos14")
 
end
end


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Tutos14

Muchas gracias por tu ayuda

Muchas gracias por tu ayuda ;)

Imagen de jorge_97

By Jorge_97

De nada para eso estamos...

Cualquier otra duda avisa

Salu2 ;)

Imagen de Dioni0396

sustituye

fuction por function.....

Imagen de jorge_97

By Jorge_97

Lo primero es que eso no vale para nada. Está casi todo mal:

Primero el color amarillo no así pero bueno eso no es importante ;)

El bucle for para lo que tu lo usas debe ir dentro del while que por otro lado no esta

Si pones screen.print y no pones screen.flip es como el que tiene un tio Granada que ni tiene tio ni tiene nada...

El bucle for solo recibe "dos parametros":Inicio y fin, además se cierra con un solo "end"

 

Este te servirá:

Sin necesidad de "for" simplemente aumentamos el valor de una coordenada (Variable ;)

---Créditos
---Autor: m.rr & Tutos14
 
amarillo = color.new(255,255,0)
y=-10 
 
while true do
controls.read()
 
y=y+1
screen.print(180,y,"Título",amarillo)
screen.print(135,y,"Coders: m.rr, Tutos14")
 
screen.flip()
end

 


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Chimecho

A ver, a ver

Que andas medio flipado D:

Es innecesario meterlo a un while, con el bucle for basta para eso... No se necesitan controles ni nada si no se va a poner algo para saltar la animación.

El screen.flip() sí, es necesario, para que se muestre lo que se imprime.

Y por último, la estructura completa del for es:

for variable = inicio, fin[, paso] do
	BLOQUE
end

Si no se especifica el valor de paso (a como tú dices), entonces se usa el valor por default, que es 1. En cambio, a como tiene el, el texto se desplaza hacia arriba :D

 

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 jorge_97

By Jorge_97

Que andas medio flipado D:

Es innecesario meterlo a un while, con el bucle for basta para eso...
No se necesitan controles ni nada si no se va a poner algo para saltar
la animación.

Bueno Chimecho te digo que acaba de empezar a programar y por lo tanto que se acostumbre a usar el while.

Respecto a los controles (controls.read()) cierto que no es necesario, fallo mio por no haberlos quitado pero estoy acostumbrado a ponerlo detras del while.

Y por último, la estructura completa del for es:


for variable = inicio, fin[, paso] do
	BLOQUE
end



Fenomenal como no lo tenía aun claro...


Además no creo que le hayas ayudado en nada. Ya que no le sirve que le hayas explicado el for si no tiene ni idea de como usarlo.
Asi que:
A ver, a ver

Que andas medio flipado D:

 

Salu2


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Tutos14

Un poco de razón si que

Un poco de razón si que tienes ;)

Imagen de Dioni0396

Similar a C ;)

Muy similar a C

Imagen de Tutos14

Guau, gracias. ;)

Guau, gracias. ;)

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.