From ac1b6cb21ed502db2734dac7513f1c6f76de32f4 Mon Sep 17 00:00:00 2001 From: JailDoctor Date: Tue, 31 Jan 2023 14:54:51 +0100 Subject: [PATCH] =?UTF-8?q?-=20Al=20bal=C3=B3=20de=20text=20se=20li=20pot?= =?UTF-8?q?=20pasar=20un=20tamany=20i=20posici=C3=B3=20-=20Els=20dialegs?= =?UTF-8?q?=20avancen=20al=20pulsar=20un=20bot=C3=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/balloon.lua | 98 ++++++++++++++++++++++++++++++------------------ 1 file changed, 62 insertions(+), 36 deletions(-) diff --git a/data/balloon.lua b/data/balloon.lua index e4f7bd3..241fbae 100644 --- a/data/balloon.lua +++ b/data/balloon.lua @@ -3,11 +3,19 @@ balloon={ pos=1, cursor={x=0,y=0}, old_update=nil, + rect=nil, - show=function(txt,actorname,below) + show=function(txt,actorname,below,rectangle) local actor = actors.search(actorname) if not actor then return end + if rectangle==nil then + balloon.rect={x=8,y=actor.y*8-4,w=144,h=35} + else + balloon.rect=rectangle + balloon.rect.y=actor.y*8-4 + end + balloon.text=txt balloon.pos=1 @@ -17,43 +25,44 @@ balloon={ 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) + balloon.rect.y=balloon.rect.y-51 + local x,y,w,h=balloon.rect.x,balloon.rect.y,balloon.rect.w,balloon.rect.h + rectfill(x+1,y+1,x+w+1,y+h+1,5) + rectfill(x,y,x+w,y+h,8) + rect(x,y,x+y,y+h,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) + for i=0,4 do rect(pos,y+h+(4-i),pos+i,y+h+(4-i),8) end + line(pos-1,y+h+1,pos-1,y+h+6,6) + line(pos+4,y+h+1,pos-1,y+h+6,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) + for i=0,4 do rect(pos+i,y+h+i,pos+4,y+h+i,8) end + line(pos+5,y+h+1,pos+5,y+h+6,6) + line(pos,y+h+1,pos+5,y+h+6,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) + balloon.rect.y=balloon.rect.y+16 + local x,y,w,h=balloon.rect.x,balloon.rect.y,balloon.rect.w,balloon.rect.h + rectfill(x+1,y+1,x+w+1,y+h+1,5) + rectfill(x,y,x+w,y+h,8) + rect(x,y,x+w,y+h,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) + for i=0,4 do rect(pos,y-(4-i),pos+i,y-(4-i),8) end + line(pos-1,y,pos-1,y-6,6) + line(pos+5,y,pos-1,y-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) + for i=0,4 do rect(pos+i,y-i,pos+4,y-i,8) end + line(pos+5,y,pos+5,y-6,6) + line(pos-1,y,pos+5,y-6,6) end - height=height+7 end - balloon.cursor={x=16,y=height} + balloon.cursor={x=balloon.rect.x+8,y=balloon.rect.y+7} --text("12345678901234567890123456789012\n3",16,height, 2) --text("UNO DOS TRES",16,height+9, 2) --text("UNO DOS TRES",16,height+18, 2) @@ -66,21 +75,38 @@ balloon={ end, update=function() + if balloon.pos<0 and btnp(KEY_SPACE) then + update=balloon.old_update + end + 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 + if balloon.pos<0 then + local col=8 + if flr(time()*4)%2==0 then col=10 end + local x,y=balloon.rect.x+balloon.rect.w-8, balloon.rect.y+balloon.rect.h-6 + line(x,y,x+4,y,col) + line(x+1,y+1,x+3,y+1,col) + line(x+2,y+2,x+2,y+2,col) + if btnp(KEY_SPACE) then + update=balloon.old_update + end + else + local char=string.sub(balloon.text,balloon.pos,balloon.pos) + if char=='' then + -- final + balloon.pos=-1 + --update=balloon.old_update + elseif char=='\n' then + -- salt de linea + balloon.pos=balloon.pos+1 + balloon.cursor.x=balloon.rect.x+8 + 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 end }