- Al baló de text se li pot pasar un tamany i posició
- Els dialegs avancen al pulsar un botó
This commit is contained in:
@@ -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
|
||||
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
|
||||
text(char,balloon.cursor.x,balloon.cursor.y,2)
|
||||
balloon.pos=balloon.pos+1
|
||||
balloon.cursor.x=balloon.cursor.x+4
|
||||
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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user