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:.
MM error muy comun ! if
MM error muy comun !
if meteoro[1].x>=0Si la x es un numero entre 500 y 600 siempre sera mayor que 0 ^^
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á ;)
¿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
Gracias pero de todos modos
No cierres el psot, una ultima cosa, tengo este code:
Lo malo es que cuando la vida está en 0 no pasa nada D:
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
Sí, exactamente asi lo habia
Sí, exactamente asi lo habia corregido..
Aparte de que la funcion no tenia el flip xD..
Que si las coordenadas
estan asi y entran de derecha a izquierda, inviertelas, es decir modifica la X
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
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 :)
arriba
pone
function control(object)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
Tampoco es de maxima urgencia
lo digo por el titulo
ESTA PARTE
colision(nave,meteoro[1])
Arriba pones esto:
Con lo cual los valores son NULOS y por eso no se ejecuta
... 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.
Bueno vale
Entonces a esperar
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