Anuncios Google

dichoso lua, problema

el contador NO ME VA, ahhh!!! me vuelve negro:

 

[...]

contador = Timer.new()
temporizador = contador:time()

[...]

function Temporizador()
contador:start()
 if temporizador== temporizador + 2000 then
  partida = partida + 1
 end
 if partida > 5 then
 contador:stop()
 respuesta = 1
 end
end

[...]

 

el caso, esque pongo en el bucle "Temporizador()" y no hace nada, la variable partida sigue siendo 1, no cambia ¿alguien sabe porque?, además mirar esto:

[...]

  boton1 = math.random(1,8)
  boton2 = math.random(1,8)
  boton3 = math.random(1,8)
  boton4 = math.random(1,8)
  boton5 = math.random(1,8)

[...]

y siempre asigna a la escopeta "boton1" el numero 6, ¿alguna idea?


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 rubenelportero

otro error

function maquina()
 contador = Timer.new()
 contador:start()
 temporizador = contador:time()
 valor = temporizador
  if valor = valor + 1000 then
   pd = pd + 2
   pasosd = pasosd + 1
  end
 end 

me da el error : "then" expected near "="

pero esque yo no entiendo porque no me deja hacer ese if!!!, hay alguna manera para hacer que cuando un contador sume 1000 haga tal cosa,  esque yo en mi juego necesito, que cada vez que el valor del contador aumente en 1000 haga tal cosa, pero me sale fallo, ¿alguna otra manera?

 

Imagen de Guillermo_Cornielle

Lo que pasa

Es que tu quieres compara peor en ves de eso estas asignando y en una condicion eos al parecer no se puede, tienes que usar == en vez de = el primero compara el segundo asigna.

Un saludo Rubén


Manual del Perfecto Votante Para un voto libre y justo!.

TheGCProjects

Imagen de el__QAT

Exacto!

En Lua no se puede hacer eso, tienes que poner:

if valor == valor + 1000 --etc...
 
--Y no
 
if valor = valor --etc...

sAlud0s


Tutorial: Fabricando nuestro propio micrófono para la PSP.

Exclusivo de PSP.Scenebeta.com

Imagen de P22

La primera comparacion está

La primera comparacion está mal, pues , por poner un ejemplo, yo tengo 13 años, y cuando tenga mi edad + 10, me comprarán un ordenador nuevo. Vale, ahora si yo cojo eso, se supone que alos 23 años me comprarán un ordenador, pero al tener catorce ya será a los veinticuatro. Pura lógica.

Saludos


¡Iníciate en Linux fácilmente! Sólo entra aquí y comprueba que distribución se adapta mejor a tí.

Mi review: iPod Touch 4G

Imagen de pspgorrister

Bueno, esa definición que

Bueno, esa definición que has dado, a mí me lía bastante, parece el guión de back to the future Risa.

Yo dejo otra explicando el porqué:

Un número nunca será igual a él mismo más otro, siempre y cuando ese otro no sea 0.


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de recoco

Lua

En lua no debes de utiilizar directamente:

if valor = valor + 1000 then
 
--En primer lugar no se puede poner en una condición un valor "+", en todo caso se hace una variable donde conprenga el "valor + 1000".

Para que funcione:

--Puedes hacer:
 
contador = Timer.new()
 
contador:start()
 
function maquina ()
 
temporizador = contador:time()
 
valor = temporizador
 
if valor > 1000 and valor < 2000 then
 
tal cosa
 
end
 
if valor > 2000 and valor < 3000 then
 
tal cosa
 
end
 
--No vulvas a fallar en las variables del temporizador.

 


Image Hosted by ImageShack.us 

Imagen de rubenelportero

ya

pero hay un inconveniente, que tengo que escribir el que como necesito que cada vez que se le sume 1000 haga tal cosa, no voy a llenar tooodooo el codigo de ifs, porque si no, tendria que poner unos 400 ifs, que no es cuestión, por eso he preguntado lo de que cada vez que le sumes 1000 haga tal cosa, toy probando una cosa, si funciona aviso :P se aceptan ideas

 

adios, y gracias por comentar recoco!

Imagen de recoco

Lua

¿Qué homebrew quieres hacer?

Imagen de rubenelportero

lo consegui :P!

nah, queria hacer que un muñeco andase solo, solución:

function maquina()
 temporizador = contador:time()
  if temporizador > 1000 and temporizador < 1100 then
   pd = pd + 2
   pasosd = pasosd + 1
   contador:stop()
   contador:reset(0)
   contador:start()
  end
 end 

hago que cuando el temporizador llegue a 1000 haga tal cosa, y, además, lo ponga a 0 y que lo ejecute de nuevo, nuevamente, si llega a mil hace tal cosa y lo reinicie y asi en un bucle infinito :P

salu2!

Imagen de P22

De todos modos

ya hacías mal la comparación, pues se ponen dos = no uno solo para comparar y por eso no te deja-

Imagen de pspgorrister

La linea de compararación,

La linea de compararación, debería quedarse así:

if temporizador > 1000 then

Si por cualquier razón la variable temporizador tuviera un valor > 1100 ya nunca ejecutarías la condición.

 

PD: Me alegra que lo hayas sacado. Lo suyo era resetear el contador, como bien averiguaste.



LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de rubenelportero

ou yeahhh!!!!

lo que dice arkanist lo había pensado esta mañana en el colegio, lo he probado y... ¡ZAS!, gracias arkanist, gracias recoco, no se que aria sin los coders de scenebeta para que me ayudasen Todo bien

 

salu2!

Imagen de Arkanist

De nada.

Por cierto, va por milisegundos no el contado?

Imagen de P22

Sip

Sip

Imagen de rubenelportero

:P

lo del match.random solucionado, estoy probando lo de recoco, en un plis comento :P

Imagen de recoco

No

No sabes utilizar el temporizador:

---INCORRECTO
 
contador = Timer.new()
temporizador = contador:time()
 
function Temporizador()
contador:start()
 if temporizador== temporizador + 2000 then
  partida = partida + 1
 end
 if partida > 5 then
 contador:stop()
 respuesta = 1
 end
end
 
--No puedes asignar temporizador + 2000 porque no hay ninguna variable temporizador, solamente has creado un contador.
--No sabes la estructuración del código.
--Si no comienzas contador:start() como variable no puedes obtener ningún tiempo.
--Si no pones temporizador = contador:time() dentro de la función nunca te funcionará el temporizador.
 

--CORRECTO
 
contador = Timer.new()
contador:start()
 
function Temporizador()
temporizador = contador:time()
if temporizador<2000 then
partida = partida + 1
end
if partida > 5 then
contador:stop()
respuesta = 1
end
end


Image Hosted by ImageShack.us 

Imagen de rubenelportero

pos nada, que no tira

function Temporizador()
 temporizador = contador:time()
 if temporizador== 2001 then
  partida = 2
 end
 if temporizador== 3001 then
  partida = 3
 end
 if temporizador== 4001 then
  partida = 4
 end
 if temporizador== 5001 then
  partida = 5

end

  if temporizador== 6001 then
  partida = 9
  respuesta = 1
 end
 end
 if partida > 5 then
  contador:stop()
  respuesta = 1
 end
end

 

no me va, claro, como yo intento que cada vez que sume 2000 temporizador suma y no se puede, pues lo he hecho con varios temporizadores ¿cago mal? fuero del function ya se a iniciado el contador

 

Imagen de recoco

Variable

Utiliza "Insertar codigo".

--variables
 
partida = 0
 
function Temporizador()
 temporizador = contador:time()
 if temporizador== 2001 then
  partida = partida + 1
 end
 if temporizador== 3001 then
 partida = partida + 1
 end
 if temporizador== 4001 then
  partida = partida + 1
 end
 if temporizador== 5001 then
  partida = partida + 1
 end
 if temporizador== 6001 then
  partida = partida + 1
  respuesta = 1
 end
 end
 if partida > 5 then
  contador:stop()
  respuesta = 1
 end

 


Image Hosted by ImageShack.us 

Imagen de Arkanist

Posible error.

No conozco si el Temporizador de Lua HM va en milisegundos o en segundos.

Si va en milisegundos, lo mas probable es que se salte, ya que va muy rapido y aqui pones que coincida con un número exacto.

Y si fuera con segundos, pues tendrías que esperar 2001 segundos.

Recomendacion: Primero, muestra el tiempo en la pantalla, y podrías utiliar esto.

partida = 0
function Temporizador()
temporizador = contador:time()
if temporizador >= 2001 and partida = 0 then
partida = partida +1
end
 --Y seguir con el resto, o también se puede poner:
if temporizador >= 2001 and temporizador <= 3000 then
partida = 1
end
-- Y seguir con el resto.

Espero que funcione. Saludos.

Imagen de rubenelportero

sigue sin nada

la variable "partida" sigue sin alterarse, sigue en 1 siempre

Imagen de recoco

déjame

Déjame el código y te digo.

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.