Hola, verán, tengo un problema en LUADEV, hice una colision en mi HB american run, puse en el code del nivel 2 una barra en la parte de abajo, de color verde, y cree una funcion de colision para que cuando toque la barra de abajo se reinicie el nivel 2 pero cuando la toca, se queda parapdeando el LED de la MS y se queda asi.
Mi code(nivel2.lua)
dofile("funciones.lua") blanco = color.new(255,255,255) rojo = color.new(255,0,0) negro = color.new(0,0,0) verde = color.new(0,255,0) fondo = image.load("imagenes/FONDO.PNG") runer = image.create(50,50,blanco) tacler = image.create(60,60,rojo) barra = image.create(480,50,verde) runer_t = {x=45,y=120,anchura=50,altura=50} tacler_t = {x=345,y=120,anchura=60,altura=60,velocidad = 2.0} barra_t = {x=1,y=271,anchura=480,altura=50} col = 0 temp = timer.new() temp:start() while true do controls.read() barra:blit(barra_t.x,barra_t.y) runer:blit(runer_t.x,runer_t.y) tacler:blit(tacler_t.x,tacler_t.y) corre() defe() colision(tacler_t) colision2(barra_t) if col == 1 then os.message("Perdiste, intentalo de nuevo :)") dofile("nivel2.lua") end if coli == 1 then dofile("nivel2.lua") end if temp:time()>=10000 then os.message("Ganaste") os.message("Pasaste al nivel 3") dofile("nivel3.lua") end screen.flip() end
funciones(funciones.lua)
function colision(objeto) if objeto.x + objeto.anchura >= runer_t.x and objeto.x <= runer_t.x + runer_t.anchura and objeto.y + objeto.altura >= runer_t.y and objeto.y <= runer_t.y + runer_t.altura then col = 1 end end function colision2(objeto) if objeto.x + objeto.anchura >= runer_t.x and objeto.x <= runer_t.x + runer_t.anchura and objeto.y + objeto.altura >= runer_t.y and objeto.y <= runer_t.y + runer_t.altura then coli = 1 end end function corre() if controls.up() then runer_t.y=runer_t.y-5 end if controls.down() then runer_t.y=runer_t.y+5 end if controls.left() then runer_t.x=runer_t.x-5 end if controls.right() then runer_t.x=runer_t.x+5 end end function defe() if runer_t.x > tacler_t.x then tacler_t.x = tacler_t.x + tacler_t.velocidad end if runer_t.x < tacler_t.x then tacler_t.x = tacler_t.x - tacler_t.velocidad end if runer_t.y > tacler_t.y then tacler_t.y = tacler_t.y + tacler_t.velocidad end if runer_t.y < tacler_t.y then tacler_t.y = tacler_t.y - tacler_t.velocidad end end --Menu function menu() if controls.press("up") then shuuya = shuuya - 1 elseif controls.press("down") then shuuya = shuuya + 1 end if shuuya == 1 then menua:blit(0,0) balon:blit(45,121) if controls.press("cross") then dofile("nivel1.lua") end end if shuuya == 2 then menub:blit(0,0) balon:blit(45,121) if controls.press("cross") then os.message("Creador: Shuuyangi") os.message("Version Beta") os.message("Espera en la version 1.0:") os.message("10 niveles") end end if shuuya == 3 then menuc:blit(0,0) balon:blit(45,121) if controls.press("cross") then os.quit() end end if shuuya == 4 then menud:blit(0,0) balon:blit(45,121) if controls.press("cross") then ins:blit(0,0) if controls.press("circle") then dofile("script.lua") end end end if shuuya > 4 then shuuya = 1 end if shuuya < 1 then shuuya = 4 end end