balloon={ text=nil, pos=1, cursor={x=0,y=0}, old_update=nil, show=function(txt,actorname,below) local actor = actors.search(actorname) if not actor then return end balloon.text=txt balloon.pos=1 balloon.old_update=update update=balloon.update local pos,height=actor.x*8+4,actor.y*8-4 if below==nil or below==false then height=height-51 rectfill(9,height+1,153,height+36,5) rectfill(8,height,152,height+35,8) rect(8,height,152,height+35,6) if pos<80 then for i=0,4 do rect(pos,height+35+(4-i),pos+i,height+35+(4-i),8) end line(pos-1,height+36,pos-1,height+41,6) line(pos+4,height+36,pos-1,height+41,6) else pos=pos-5 for i=0,4 do rect(pos+i,height+35+i,pos+4,height+35+i,8) end line(pos+5,height+36,pos+5,height+41,6) line(pos,height+36,pos+5,height+41,6) end height=height+7 else height=height+16 rectfill(9,height+1,153,height+35,5) rectfill(8,height,152,height+36,8) rect(8,height,152,height+36,6) if pos<80 then for i=0,4 do rect(pos,height-(4-i),pos+i,height-(4-i),8) end line(pos-1,height,pos-1,height-6,6) line(pos+5,height,pos-1,height-6,6) else pos=pos-5 for i=0,4 do rect(pos+i,height-i,pos+4,height-i,8) end line(pos+5,height,pos+5,height-6,6) line(pos-1,height,pos+5,height-6,6) end height=height+7 end balloon.cursor={x=16,y=height} --text("12345678901234567890123456789012\n3",16,height, 2) --text("UNO DOS TRES",16,height+9, 2) --text("UNO DOS TRES",16,height+18, 2) end, draw=function() if ballon.text then end end, update=function() if not beat() then return end local char=string.sub(balloon.text,balloon.pos,balloon.pos) if char=='' then -- final update=balloon.old_update elseif char=='\n' then -- salt de linea balloon.pos=balloon.pos+1 balloon.cursor.x=16 balloon.cursor.y=balloon.cursor.y+9 else text(char,balloon.cursor.x,balloon.cursor.y,2) balloon.pos=balloon.pos+1 balloon.cursor.x=balloon.cursor.x+4 end end }