ERROR :@(LUA DEV)[URGENTE][AYUDA URGENTE!!]

QUieor que el meteoro venga desde la cordenada X(que es un numero aleatorio entre 500 y 600).. hascia adentro, hice esto..

nave={img=image.load("Imagenes/nave.png"),x=20,y=96,w=90,h=90}
meteoro={}
meteoro[1]={img=image.load("Imagenes/meteoro.png"),x=math.random(500,600),y=math.random(0,272),h=60,w=60}
 
local fondo=image.load("Imagenes/fondo.png")
 
function colision(ob1,ob2)
if ob1.x+ob1.w>=ob2.x and
	ob1.y+ob1.h>=ob2.y and
	ob1.y<=ob2.y+ob2.h and
	ob1.x<=ob2.x+ob2.w then
		return true
else
		return false
end
end
 
 
while true do
	controls.read()
		fondo:blit(0,0)
		meteoro[1].img:blit(meteoro[1].x,meteoro[1].y)
		nave.img:blit(nave.x,nave.y)
		meteoro[1].x=meteoro[1].x-4
		if meteoro[1].x>=0 then meteoro[1].x=math.random(500,550) meteoro[1].y=math.random(0,272) end
		if controls.up() then nave.y=nave.y-5 elseif controls.down() then nave.y=nave.y+5 end
		if colision(nave,meteoro[1]) then dofile("script.lua") end 
	screen.flip()
end

Pero no sale nisiquiera el meteoro D:.


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 Nevado0

MM error muy comun ! if

MM error muy comun !

if meteoro[1].x>=0

Si la x es un numero entre 500 y 600 siempre sera mayor que 0 ^^
Imagen de barney77

Pero.. A cada pasada del

Pero..

A cada pasada del bucle disminuye 4.(lo cual haria que si llege a 0)XD

Pero bueno, ya me funciono, pero ahora es diferente(viene de la izquierda hacia dentro, y no de la derecha, en fin!)

 

Pues invierte las

Pues invierte las coordenadas, barney, y ya está ;)

Imagen de barney77

¿Como?.. No entendí..  

¿Como?..

No entendí..

 

Perdón... que mal escribí ese

Perdón... que mal escribí ese comentario de arriba. Corregido.

Ahora... si tienes tus coordenadas en X de tal manera que llegarán a 0, pues las pones de tal manera que ahora lleguen a 480

Imagen de barney77

Gracias pero de todos modos

No cierres el psot, una ultima cosa, tengo este code:

function p()
local fondo=image.load("Imagenes/fondo.png")
	while true do
		screen.print(100,100,"No has llegado al tiempo objetivo")
		screen.print(100,200,"Presiona X para volver a intentarlo")
		screen.print(100,300,"Presiona O para ir al menu")
end
end
 
function g()
os.message("ganaste") end
 
nave={img=image.load("Imagenes/nave.png"),x=155,y=176,w=85,h=60}
meteoro={}
meteoro[1]={img=image.load("Imagenes/meteoro.png"),x=math.random(0,480),y=math.random(-20,-400),h=55,w=55}
meteoro[2]={img=image.load("Imagenes/meteoro.png"),x=math.random(0,480),y=math.random(-20,-800),h=55,w=55}
vidaI=image.load("Imagenes/vida.png")
tiempo=timer.new()
tiempo:start()
tiempo2=timer.new()
tiempo2:start()
 
local fondo=image.load("Imagenes/fondo.png")
 
function control(object)
if controls.right() then
	object.x=object.x+7
elseif controls.left() then
	object.x=object.x-7
end
end
 
function colision(ob1,ob2)
if ob1.x+ob1.w>=ob2.x and
	ob1.y+ob1.h>=ob2.y and
	ob1.y<=ob2.y+ob2.h and
	ob1.x<=ob2.x+ob2.w then
		return true
else
		return false
end
end
 
Asb=1
vida=100
 
while true do
	controls.read()
		fondo:blit(0,0)
		nave.img:blit(nave.x,nave.y)
		meteoro[1].img:blit(meteoro[1].x,meteoro[1].y)
		meteoro[2].img:blit(meteoro[2].x,meteoro[2].y)
		vidaI:blit(5,1)
		screen.print(29,8,"=  "..vida)
		screen.print(10,30,"Tiempo=  "..math.floor(tiempo:time()/1000))
		screen.print(10,60,"Tiempo Objetivo=  100 Segundos")
		meteoro[1].y=meteoro[1].y+Asb
		meteoro[2].y=meteoro[2].y+Asb
		control(nave)
		if nave.x+nave.w>=480 then nave.x=1 elseif nave.x<=0 then nave.x=480-nave.w end
		if meteoro[1].y>=272 then meteoro[1].x=math.random(0,480) meteoro[1].y=math.random(-20,-500) elseif meteoro[2].y>=272 then meteoro[2].x=math.random(0,480) meteoro[2].y=math.random(-20,-300) end
		if nave.y+nave.h>=480 then nave.y=1 elseif nave.y<=0 then nave.y=480-nave.h end
		if tiempo2:time()>=10000 then Asb=Asb+1.5 tiempo2:reset() elseif tiempo:time()>=100000 then g() end
		if colision(meteoro[1],nave) then vida=vida-1 elseif colision(meteoro[2],nave) then vida=vida-1 elseif vida==0 then P() end
	screen.flip()
end

Lo malo es que cuando la vida está en 0 no pasa nada D:

Imagen de NauTiluS1

No ví el code ya que es

No ví el code ya que es larguito xD pero has esto

if vida == 0 then

asass

end

Imagen de barney77

Sí, exactamente asi lo habia

Sí, exactamente asi lo habia corregido..

Aparte de que la funcion no tenia el flip xD..

 

Imagen de Dioni0396

Que si las coordenadas

estan asi y entran de derecha a izquierda, inviertelas, es decir modifica la X

 

Imagen de Dioni0396

Pues vamos a ver

Meteoro lo haces 3 veces Ok no problem

pero todo este code no es llamado nunca

function control(object)
if controls.right() then
object.x=object.x+7
elseif controls.left() then
object.x=object.x-7
elseif controls.down() then
object.y=object.y+7
elseif controls.up() then
object.y=object.y-7
end
end
 
function colision(ob1,ob2)
if ob1.x+ob1.w>=ob2.x and
ob1.y+ob1.h>=ob2.y and
ob1.y<=ob2.y+ob2.h and
ob1.x<=ob2.x+ob2.w then
return true
else
return false
end
end

 

Imagen de barney77

xD

Te equivocas, si lo llamo, lo llamo asi: control(nave), if colision(meteoro[1],nave) then dofile("script.lua") end

Lee bien el code y veras :)

Imagen de Dioni0396

arriba

pone

function control(object)
Imagen de barney77

Noo, estas mal bro, las

Noo, estas mal bro, las funciones se llaman sin el "function" ;).

Ese no es el error, aver alguien mas que responda :S

Imagen de Dioni0396

Tampoco es de maxima urgencia

lo digo por el titulo

ESTA PARTE

colision(nave,meteoro[1])

Arriba pones esto:

colision(ob1,ob2)

Con lo cual los valores son NULOS y por eso no se ejecuta

Imagen de barney77

... Has leido lo que tiene la

...

Has leido lo que tiene la funcion?..

Dioni, es obvio que está bien..

la funcion se llama colision y ob1 y ob2 son los parametros que está tiene..

en fín, me ha funcionado pero de diferente forma..

Osea ahora viene de la izquerda hacia dentro..

Quien sabe xq pase eso.

Imagen de Dioni0396

Bueno vale

Entonces a esperar

Imagen de barney77

Se me hace que mejor lo dejo

Se me hace que mejor lo dejo así, se me esta ocurriendo una nueva metodologia del juego  :D

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.