diff --git a/data/dialeg.lua b/data/dialeg.lua index 8fd4b85..fb7f818 100644 --- a/data/dialeg.lua +++ b/data/dialeg.lua @@ -1,40 +1,65 @@ -function dialog.new( _text, _actor ) - return { - actor = _actor, - text = _text, - time = 60, - } +dialeg={ + list = {}, +} + +function dialeg.new( _text, _actor ) + table.insert( + dialeg.list, + { + actor= _actor, + text=_text, + time = 120, + w = math.floor(4.6*#_text), + h = 20, + } ) end function dialeg:draw( ) - local w = 50 - local h = 20 - local x = 0 - local y = 0 + local i = 1 + while i <= #self.list do + local d = self.list[i] + + if d.time>0 and d.actor then + if viewp:inside(d.actor.x, d.actor.y, d.actor.w, d.actor.h) then + local x = 0 + local y = 0 + + y = d.actor.y-20 + if d.actor.flip then + x = d.actor.x-d.w + else + x = d.actor.x+d.actor.w + end + + x, y = viewp:screen_coords( x, y ) + + draw.rrectf(x, y, d.w, d.h, 5, 2) + + if d.actor.flip then + draw.line(x+d.w, y+d.h-1+5, x+d.w-20, y+d.h-1, 2) + draw.line(x+d.w, y+d.h-1+5, x+d.w-18, y+d.h-1, 2) + draw.line(x+d.w, y+d.h-1+5, x+d.w-14, y+d.h-1, 2) + draw.line(x+d.w, y+d.h-1+5, x+d.w-12, y+d.h-1, 2) + else + draw.line(x, y+d.h-1+5, x+20, y+d.h-1, 2) + draw.line(x, y+d.h-1+5, x+18, y+d.h-1, 2) + draw.line(x, y+d.h-1+5, x+14, y+d.h-1, 2) + draw.line(x, y+d.h-1+5, x+12, y+d.h-1, 2) + end + + local font_curr = font.current() + font.current(font_default) + draw.text(d.text, x+5,y+7, 16) + font.current(font_curr) + + d.time = d.time-1 + + i = i + 1 + end + else + table.remove(self.list, i) + end + end +end - y = actor.y-20 - if actor.flip then - x = actor.x-w - else - x = actor.x+actor.w - end - - x, y = viewp:screen_coords( x, y ) - draw.rrectf(x, y, w, h, 5, 2) - if actor.flip then - draw.line(x+w, y+h-1+5, x+w-20, y+h-1, 2) - draw.line(x+w, y+h-1+5, x+w-18, y+h-1, 2) - draw.line(x+w, y+h-1+5, x+w-14, y+h-1, 2) - draw.line(x+w, y+h-1+5, x+w-12, y+h-1, 2) - else - draw.line(x, y+h-1+5, x+20, y+h-1, 2) - draw.line(x, y+h-1+5, x+18, y+h-1, 2) - draw.line(x, y+h-1+5, x+14, y+h-1, 2) - draw.line(x, y+h-1+5, x+12, y+h-1, 2) - end - - local font_curr = font.current() - font.current(font_default) - draw.text(text, x+5,y+7, 16) - font.current(font_curr) -end \ No newline at end of file +return dialeg \ No newline at end of file diff --git a/data/game.lua b/data/game.lua index 83bdb81..de39f40 100644 --- a/data/game.lua +++ b/data/game.lua @@ -238,6 +238,8 @@ function world_draw() end end + dialeg:draw() + if stages.boss_loaded then stage_draw_middle() end cacau:draw() @@ -385,7 +387,13 @@ function special_keys() -- boss.x_old = boss.x -- boss.x = boss.x+1 -- print_analisis() - dialeg_draw( "Hola mundo!", abad ) + dialeg.new( "Hola mundo!", abad ) + end + if key.press(key.F) then + -- boss.x_old = boss.x + -- boss.x = boss.x+1 + -- print_analisis() + dialeg.new( "Ma cuando arribo a casa", premiere ) end if key.press(key.W) then boss.y_old = boss.y