FAMILYTREE2

displayMode(LANDSCAPE_LEFT)
displayMode(FULLSCREEN)
backingMode(RETAINED)
function setup()
  --  noSmooth()
  --  noStroke()
    p={} --Bildname
    pic={}
    for i = 0,30 do
        p[i]="Dropbox:A" ..i
        pic[i]=readImage(p[i])
        if pic[i] == nil then --if no image is present, the picture A0.png is used
        p[i] = "Dropbox:A0"
     end
    end
    pic = nil
    screated=false
    
    d={} --lfd ID and Text 
    t={} --lfd Id
   
d[0]={"-","-","-","-"}
t[0]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[1]={"1 Karl","Martel","* 23.08.0686","+ 22.10.0741"}
t[1]={0,0,0,0,0,0,1,2,16,5,0,0,0,0,0,0,0,0,0,0,0,0}
d[2]={"2 Chotrude","von Trier","* --.--.0690","+ --.--.0725"}
t[2]={0,0,0,0,0,0,2,1,16,5,0,0,0,0,0,0,0,0,0,0,0,0}
d[3]={"3 Heribert","von Laon","* --.--.0680","+ --.--.747"}
t[3]={0,0,0,0,0,0,3,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[4]={"4 Gisele","von Aquitanien","* --.--.--","+ --.--.--"}
t[4]={0,0,0,0,0,0,4,3,6,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[5]={"5 Pippin","Der Jüngere","* --.--.0714","+ 24.09.0768"}
t[5]={0,0,0,0,1,2,5,6,7,9,10,0,0,0,0,0,0,0,0,0,0,0}
d[6]={"6 Bertrada","von Laon","* --.--.0725","+ 12.07.0783"}
t[6]={0,0,0,0,3,4,6,5,7,9,10,0,0,0,0,0,0,0,0,0,0,0}
d[7]={"7 Karl","der Grosse","* 02.04.0742","+ 28.01.0814"}
t[7]={1,2,3,4,5,6,7,8,11,12,13,14,15,0,0,0,0,0,0,0,0,0}
d[8]={"8 Hildegard","von Anglachgau","* --.--.0758","+ 30.04.0783"}
t[8]={0,0,0,0,0,0,8,7,11,12,13,14,15,0,0,0,0,0,0,0,0,0}
d[9]={"9 Karlmann","der Erste","* --.--.0751","+ 04.12.0771"}
t[9]={1,2,3,4,5,6,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[10]={"10 Gisela","--------","* --.--.0757"," + --.--.0810"}
t[10]={1,2,3,4,5,6,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[11]={"11 Karl","der Jüngere","* --.--.0772","+ --.--.0881"}
t[11]={5,6,0,0,7,8,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[12]={"12 Karlmann","--------","* --.--.0777","+ 08.07.0810"}
t[12]={5,6,0,0,7,8,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[13]={"13 Ludwig","der Fromme","* --.--.0778","+ --.--.0840"}
t[13]={5,6,0,0,7,8,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[14]={"14 Berta","--------","* --.--.0779","+ 14.01.0828"}
t[14]={5,6,0,0,7,8,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[15]={"15 Gisela","----------","* --.--.0782","+ --.--.0805"}
t[15]={5,6,0,0,7,8,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[16]={"16 Carloman","-------","* --.--.0706","+ 17.07.0754"} 
t[16]={0,0,0,0,1,2,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[17]={"17 -","-","-","-"}
t[17]={0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[18]={"18 -------","---------","-","-"}
t[18]={0,0,0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[19]={"19 -------","---------","-","-"}
t[19]={0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[20]={"20 -------","--------","-","-"}
t[20]={0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[21]={"21 --------","--------","-","-"}
t[21]={0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[22]={"22 -","-","-","-"}
t[22]={0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[23]={"23 -","-","-","-"}
t[23]={0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[24]={"24 -","-","-","-"}
t[24]={0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[25]={"25 -","-","-","-"}
t[25]={0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[26]={"26 -","-","-","-"}
t[26]={0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[27]={"27 -","-","-","-"}
t[27]={0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[28]={"28 -","-","-","-"}
t[28]={0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[29]={"29 -","-","-","-"}
t[29]={0,0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
d[30]={"30 -","-","-","-"}
t[30]={0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

m=7 -- First proband at start
end
-- This function gets called once every frame
function draw()
    -- This sets a dark background color 
    background(40, 40, 50)
    fill(255, 255, 255, 255)
    -- This sets the line thickness
    strokeWidth(8)  
    line(150,700,300,700)
    line(650,700,850,700)
    line(225,700,225,480)
    line(770,700,770,480)
    line(220,540,730,540)
    line(410,535,410,500)
    line(450,430,550,430)
    line(80,320,340,320)
    line(80,320,80,230)
    line(80,240,960,240)
    line(80,110,960,110)
    line(960,240,960,110)
    
    -- Do your drawing here
    textMode(CORNER)
    text("For change",30,440)
    text("tap twice",30,420)
    text("on a picture",30,400)
    k1=t[m][1]
    k2=t[m][2]
    k3=t[m][3]
    k4=t[m][4]
    k5=t[m][5]
    k6=t[m][6]
    k7=t[m][7]
    k8=t[m][8]
    k9=t[m][9]
    k10=t[m][10]
    k11=t[m][11]
    k12=t[m][12]
    k13=t[m][13]
    k14=t[m][14]
    k15=t[m][15]
    k16=t[m][16]
    k17=t[m][17]
    k18=t[m][18]
    k19=t[m][19]
    k20=t[m][20]
    k21=t[m][21]
    k22=t[m][22]
    
 spriteMode(CORNER)
 sprite(p[k1],50,640,100,120)  --> Grandfather 1
 text(d[k1][1],50,620);text(d[k1][2],50,600);text(d[k1][3],50,580);text(d[k1][4],50,560) 
 sprite(p[k2],300,640,100,120) --> Grandmother 1
 text(d[k2][1],300,620);text(d[k2][2],300,600);text(d[k2][3],300,580);text(d[k2][4],300,560)
 sprite(p[k3],600,640,100,120) --> Grandfather 2
 text(d[k3][1],600,620) ;text(d[k3][2],600,600) ;text(d[k3][3],600,580) ;text(d[k3][4],600,560)
 sprite(p[k4],850,640,100,120) --> Grandmother 2
 text(d[k4][1],850,620);text(d[k4][2],850,600);text(d[k4][3],850,580);text(d[k4][4],850,560)
 sprite(p[k5],170,450,100,120) --> Father
 text(d[k5][1],170,430);text(d[k5][2],170,410);text(d[k5][3],170,390);text(d[k5][4],170,370)
 sprite(p[k6],730,450,100,120) --> Mother
 text(d[k6][1],730,430);text(d[k6][2],730,410);text(d[k6][3],730,390);text(d[k6][4],730,370)
 sprite(p[k7],350,375,130,150) --> Proband
 text(d[k7][1],350,355);text(d[k7][2],350,335);text(d[k7][3],350,315);text(d[k7][4],350,295)    
 sprite(p[k8],550,375,100,120) --> Partner
 text(d[k8][1],550,355);text(d[k8][2],550,335);text(d[k8][3],550,315);text(d[k8][4],550,295)
 sprite(p[k9],50,190,80,85)    --> Child 1
 text(d[k9][1],50,170)
 sprite(p[k10],180,190,80,85)  --> Child 2
 text(d[k10][1],180,170)    
 sprite(p[k11],310,190,80,85)  --> Child 3
 text(d[k11][1],310,170)   
 sprite(p[k12],440,190,80,85)  --> Child 4
 text(d[k12][1],440,170)   
 sprite(p[k13],570,190,80,85)  --> Child 5
 text(d[k13][1],570,170)    
 sprite(p[k14],700,190,80,85)  --> Child 6
 text(d[k14][1],700,170)    
 sprite(p[k15],830,190,80,85)  --> Child 7
 text(d[k15][1],830,170)   
 sprite(p[k22],50,60,80,85)    --> Child 14
 text(d[k22][1],50,40)    
 sprite(p[k21],180,60,80,85)   --> Child 13
 text(d[k21][1],180,40)      
 sprite(p[k20],310,60,80,85)   --> Child 12
 text(d[k20][1],310,40)   
 sprite(p[k19],440,60,80,85)   --> Child 11
 text(d[k19][1],440,40)     
 sprite(p[k18],570,60,80,85)   --> Child 10
 text(d[k18][1],570,40)     
 sprite(p[k17],700,60,80,85)   --> Child 9
 text(d[k17][1],700,40)  
 sprite(p[k16],830,60,80,85)   --> Child 8
 text(d[k16][1],830,40)  
    
     function touched(t)
    if t.tapCount==2 then
        screated=true
    end
    
    if t.state==BEGAN and t.y< 760 and t.y >640 and t.x >50 and t.x<150 and screated then
       m=k1
    end
    if t.state==BEGAN and t.y< 760 and t.y >640 and t.x >300 and t.x<400 and screated then
       m=k2
    end
    if t.state==BEGAN and t.y< 760 and t.y >640 and t.x >600 and t.x<700 and screated then
       m=k3
    end
    if t.state==BEGAN and t.y< 760 and t.y >640 and t.x >850 and t.x<950 and screated then
       m=k4
    end
    if t.state==BEGAN and t.y< 570 and t.y >450 and t.x >170 and t.x<270 and screated then
       m=k5
    end
    if t.state==BEGAN and t.y< 570 and t.y >450 and t.x >730 and t.x<830 and screated then
       m=k6
    end
    if t.state==BEGAN and t.y< 495 and t.y >375 and t.x >350 and t.x<450 and screated then
       m=7
    end
    if t.state==BEGAN and t.y< 495 and t.y >375 and t.x >550 and t.x<650 and screated then
       m=k8
    end
    if t.state==BEGAN and t.y< 270 and t.y >190 and t.x >50 and t.x<130 and screated then
       m=k9
    end
    if t.state==BEGAN and t.y< 270 and t.y >190 and t.x >180 and t.x<260 and screated then
       m=k10
    end
    if t.state==BEGAN and t.y< 270 and t.y >190 and t.x >310 and t.x<390 and screated then
       m=k11
    end
    if t.state==BEGAN and t.y< 270 and t.y >190 and t.x >440 and t.x<520 and screated then
       m=k12
    end
    if t.state==BEGAN and t.y< 270 and t.y >190 and t.x >570 and t.x<650 and screated then
       m=k13
    end
    if t.state==BEGAN and t.y< 270 and t.y >190 and t.x >700 and t.x<780 and screated then
       m=k14
    end
    if t.state==BEGAN and t.y< 270 and t.y >190 and t.x >830 and t.x<910 and screated then
       m=k15
    end
    if t.state==BEGAN and t.y< 140 and t.y >60 and t.x >830 and t.x<910 and screated then
       m=k16
    end
    if t.state==BEGAN and t.y< 140 and t.y >60 and t.x >700 and t.x<780 and screated then
       m=k17
    end
    if t.state==BEGAN and t.y< 140 and t.y >60 and t.x >570 and t.x<650 and screated then
       m=k18
    end
    if t.state==BEGAN and t.y< 140 and t.y >60 and t.x >440 and t.x<520 and screated then
       m=k19
    end
    if t.state==BEGAN and t.y< 140 and t.y >60 and t.x >310 and t.x<390 and screated then
       m=k20
    end
    if t.state==BEGAN and t.y< 140 and t.y >60 and t.x >180 and t.x<260 and screated then
       m=k21
    end
    if t.state==BEGAN and t.y< 140 and t.y >60 and t.x >50 and t.x<130 and screated then
       m=k22
    end
     
    if t.state==ENDED and screated then
        screated=false
    end
  end 
end   

nice but for what ?? upload dropbox images?? :-?

@Luismi. By that I manage my family. Now have 360 members in this file.