Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Création et gestion d’un livre | |
| | Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Création et gestion d’un livre Jeu 8 Mar 2018 - 14:43 | |
| - Code:
-
rem ============================================================================ rem Création et gestion d’un livre rem Par Papydall rem ============================================================================ rem Le programme affiche un livre et gère son ouverture et le feuilletage de rem ses pages. rem Avant de lancer le programme : rem Indiquez dans procédure SUB Init() le titre du livre, le nom de l’auteur et rem le nombre de pages du livre (lignes 33 à 35). rem Les pages du livre créé sont numérotées, mais elles sont encore vierges rem (des pages blanches). rem ============================================================================ rem Pour rédiger les contenus des différentes pages : ajoutez votre code dans rem la procédure SUB Rediger_Pages() et les procédures suivantes rem ============================================================================ rem Voici un exemple de livre de 6 pages toutes vierges rem ============================================================================
Init() GUI() Livre(titre$,auteur$,nb_page)
end
rem ============================================================================ SUB Init() label Gestion_Clic dim xc,yc,x,y,nb_page,i dim titre$,auteur$ width 0,screen_x -100 : height 0,screen_y-100 top 0,(screen_y - height(0))/2 : left 0, (screen_x - width(0))/2 xc = width(0)/2 : yc = height(0)/2 titre$ = "Exemple de livre" : ' Titre du livre (à adapter) auteur$ = "Papydall" : ' Nom de l'auteur (à adapter) nb_page = 6 : ' Nombre des pages du live (à adapter) END_SUB rem ============================================================================ SUB GUI() color 0,0,0,128 alpha 10 : top 10,20 : left 10, xc-150 : font_bold 10 : font_size 10,24 : hide 10 font_name 10,"arial" : font_color 10,255,255,255 : caption 10,titre$ picture 100 : width 100,xc-100 : height 100,2*yc-150 top 100,80 : left 100,xc-width(100)/2 : on_click 100,Gestion_Clic : hide 100 cursor_point 100 : font_name 100,"arial" : font_bold 100 : font_size 100,34 font_color 100,255,255,255 END_SUB rem ============================================================================ SUB Livre(titre$,auteur$,nb_page) dim_local i, t$ caption 0,"Cliquer sur le livre pour l'ouvrir" for i = 101 to 100+nb_page picture i : width i,width(100) : height i,height(100) : top i,80 if even(i) = 0 then left i,80 : else : left i,xc+30 on_click i,Gestion_Clic : hide i : cursor_point i font_bold i : font_name i,"comic sans ms" : font_size i,18 Afficher_Page(i) next i Rediger_Pages() t$ = "Cliquer sur le livre pour l'ouvrir ...." t$ = t$ + " ou sur la croix rouge pour quitter ..." 2d_target_is 100 : print_target_is 100 2d_fill_color 150,100,50 : 2d_rectangle 0,0,width(100),height(100) 2d_pen_width 5 : 2d_pen_color 250,150,25 : 2d_line 20,0,20,height(100) print_locate 150,050 : print titre$ font_size 100,24 : print_locate 150,height(100)-100 : print "Auteur : " + auteur$ show 100 END_SUB rem ============================================================================ SUB Afficher_Page(p) print_target_is p : font_color p,0,0,0 : 2d_fill_color 255,255,255 font_size p,10 : font_name p,"comic sans ms" 2d_target_is p : 2d_pen_color 0,0,0 if odd(p) > 0 if p > 101 : ' Si on est dans une page impaire autre que la 1ere 2d_line 1,1,1,height(p) : ' On trace 3 traits verticaux... 2d_line 3,1,3,height(p) : ' ... pour donner l'impression ... 2d_line 5,1,5,height(p) : ' ... qu'on a déjà feuilleté quelques pages end_if print_locate 010,height(p)-50 else if p < 100 + nb_page : ' Si on est dans une page paire autre que la dernière 2d_line width(p)-7,1,width(p)-7,height(p) : ' On trace 3 traits verticaux ... 2d_line width(p)-5,1,width(p)-5,height(p) : ' ... pour donner l'impression ... 2d_line width(p)-3,1,width(p)-3,height(p) : ' qu'il reste encore d'autres pages end_if print_locate width(p)-70,height(p)-50 end_if print "Page " + str$(p-100) END_SUB rem ============================================================================ SUB Ouvrir_Livre() dim_local i,j,t$ t$ = "Cliquer sur les pages pour feuilleter le livre ..." t$ = t$ + " ou sur la croix rouge pour quitter ..." for i = 100 to 100 + nb_page : off_click i : next i caption 0,t$ hide 100 : 2d_target_is 0 : print_target_is 0 2d_fill_color 150,50,20 : 2d_pen_color 10,0,0 : 2d_pen_width 5 if even(number_click) > 0 for i = 2*xc-50 to 30 step -5 2d_rectangle i,60,2*xc-50,2*yc-50 : pause 1 next i else for i = 30 to 2*xc-50 step 5 2d_rectangle 30,60,i,2*yc-50 : pause 1 next i end_if for i = xc-10 to xc+10 2d_pen_color 12.5*abs(xc-i),12.5*abs(xc-i),12.5*abs(xc-i) 2d_line i,top(100),i,top(100) + height(100) next i 2d_fill_color 255,255,255 : show 10 for i = 101 to 100 + nb_page : Afficher_Page(i) : on_click i,Gestion_Clic : next i END_SUB rem ============================================================================ Gestion_Clic: Ouvrir_Livre() i = number_click if i = 100 : ' On a cliqué sur le livre ? show 101 : show 102 : ' alors afficher la page 1 et la page 2 return end_if if i = 101 : ' On a cliqué sur la page 1, alors on ferme le livre hide 10 : hide 101 : hide 102 : show 100 2d_target_is 0 : cls : on_click 100,Gestion_Clic caption 0,"Cliquer sur le livre pour l'ouvrir .... ou sur la croix rouge pour quitter ..." return end_if if i > 101 and i < 100 + nb_page : ' On a cliqué sur les pages entre la 2ème et l'avant dernière if even(i) = 1 : ' On a cliqué sur une page dont le N° est pair ? show i+1 : show i+2 : ' alors, on affiche les 2 pages suivantes else : ' On a cliqué sur une page dont le N° est impair ? hide i : hide i+1 : show i-2 : show i-1 : ' alors, on affiche les 2 pages précédentes end_if end_if if i = 100 + nb_page : ' On a cliqué sur la dernière page ? for i = 101 to 100 + nb_page : hide i : next i : ' Alors on cache tout hide 10 : show 100 : 2d_target_is 0 : cls : ' et on ferme le livre caption 0,"Cliquer sur le livre pour l'ouvrir .... ou sur la croix rouge pour quitter ..." on_click 100,Gestion_Clic end_if return rem ============================================================================ ' Adaptez cette procédure selon votre projet SUB Rediger_Pages() Page_1() : ' 1ère page Page_2() : ' 2eme page ' ... : ' etc. ' Page_N() : ' dernière page END_SUB rem ============================================================================ SUB Page_1() 2d_target_is 101 : print_target_is 101 ' coder ici le contenu de la page ' Affichage de texte, graphique ou chargement d'images à partir de fichiers ' externes END_SUB rem ============================================================================ SUB Page_2() 2d_target_is 102 : print_target_is 102 ' Comme la Page_1 END_SUB rem ============================================================================ ' Les pages suivantes ' ... ' La dernière page rem ============================================================================
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Création et gestion d’un livre Jeu 8 Mar 2018 - 15:25 | |
| Voici un programme exemple pour créer un livre de 4 pages. Cliquez sur le livre pour l'ouvrir. Cliquez dans les pages pour feuilleter le livre (en avant ou en arrière) - Code:
-
rem ============================================================================ rem Test de Création et gestion d’un livre rem Par Papydall rem ============================================================================ rem Voici un exemple de livre de 4 pages affichant une fable oubliée de Lafontaine rem ============================================================================
Init() GUI() Livre(titre$,auteur$,nb_page)
end
rem ============================================================================ SUB Init() label Gestion_Clic dim xc,yc,x,y,nb_page,i dim titre$,auteur$ width 0,screen_x -100 : height 0,screen_y-100 top 0,(screen_y - height(0))/2 : left 0, (screen_x - width(0))/2 xc = width(0)/2 : yc = height(0)/2 titre$ = "La fable oubliée" : ' Titre du livre (à adapter) auteur$ = "Papydall" : ' Nom de l'auteur (à adapter) nb_page = 4 : ' Nombre des pages du live (à adapter) END_SUB rem ============================================================================ SUB GUI() color 0,0,0,128 alpha 10 : top 10,20 : left 10, xc-150 : font_bold 10 : font_size 10,24 : hide 10 font_name 10,"arial" : font_color 10,255,255,255 : caption 10,titre$ picture 100 : width 100,xc-100 : height 100,2*yc-150 top 100,80 : left 100,xc-width(100)/2 : on_click 100,Gestion_Clic : hide 100 cursor_point 100 : font_name 100,"arial" : font_bold 100 : font_size 100,34 font_color 100,255,255,255 END_SUB rem ============================================================================ SUB Livre(titre$,auteur$,nb_page) dim_local i, t$ caption 0,"Cliquer sur le livre pour l'ouvrir" for i = 101 to 100+nb_page picture i : width i,width(100) : height i,height(100) : top i,80 if even(i) = 0 then left i,80 : else : left i,xc+30 on_click i,Gestion_Clic : hide i : cursor_point i font_bold i : font_name i,"comic sans ms" : font_size i,18 Afficher_Page(i) next i Rediger_Pages() t$ = "Cliquer sur le livre pour l'ouvrir ...." t$ = t$ + " ou sur la croix rouge pour quitter ..." 2d_target_is 100 : print_target_is 100 2d_fill_color 150,100,50 : 2d_rectangle 0,0,width(100),height(100) 2d_pen_width 5 : 2d_pen_color 250,150,25 : 2d_line 20,0,20,height(100) print_locate 150,050 : print titre$ font_size 100,24 : print_locate 150,height(100)-100 : print "Auteur : " + auteur$ show 100 END_SUB rem ============================================================================ SUB Afficher_Page(p) print_target_is p : font_color p,0,0,0 : 2d_fill_color 255,255,255 font_size p,10 : font_name p,"comic sans ms" 2d_target_is p : 2d_pen_color 0,0,0 if odd(p) > 0 if p > 101 : ' Si on est dans une page impaire autre que la 1ere 2d_line 1,1,1,height(p) : ' On trace 3 traits verticaux... 2d_line 3,1,3,height(p) : ' ... pour donner l'impression ... 2d_line 5,1,5,height(p) : ' ... qu'on a déjà feuilleté quelques pages end_if print_locate 010,height(p)-50 else if p < 100 + nb_page : ' Si on est dans une page paire autre que la dernière 2d_line width(p)-7,1,width(p)-7,height(p) : ' On trace 3 traits verticaux ... 2d_line width(p)-5,1,width(p)-5,height(p) : ' ... pour donner l'impression ... 2d_line width(p)-3,1,width(p)-3,height(p) : ' qu'il reste encore d'autres pages end_if print_locate width(p)-70,height(p)-50 end_if print "Page " + str$(p-100) END_SUB rem ============================================================================ SUB Ouvrir_Livre() dim_local i,j,t$ t$ = "Cliquer sur les pages pour feuilleter le livre ..." t$ = t$ + " ou sur la croix rouge pour quitter ..." for i = 100 to 100 + nb_page : off_click i : next i caption 0,t$ hide 100 : 2d_target_is 0 : print_target_is 0 2d_fill_color 150,50,20 : 2d_pen_color 10,0,0 : 2d_pen_width 5 if even(number_click) > 0 for i = 2*xc-50 to 30 step -5 2d_rectangle i,60,2*xc-50,2*yc-50 : pause 1 next i else for i = 30 to 2*xc-50 step 5 2d_rectangle 30,60,i,2*yc-50 : pause 1 next i end_if for i = xc-10 to xc+10 2d_pen_color 12.5*abs(xc-i),12.5*abs(xc-i),12.5*abs(xc-i) 2d_line i,top(100),i,top(100) + height(100) next i 2d_fill_color 255,255,255 : show 10 for i = 101 to 100 + nb_page : Afficher_Page(i) : on_click i,Gestion_Clic : next i END_SUB rem ============================================================================ Gestion_Clic: Ouvrir_Livre() i = number_click if i = 100 : ' On a cliqué sur le livre ? show 101 : show 102 : ' alors afficher la page 1 et la page 2 return end_if if i = 101 : ' On a cliqué sur la page 1, alors on ferme le livre hide 10 : hide 101 : hide 102 : show 100 2d_target_is 0 : cls : on_click 100,Gestion_Clic caption 0,"Cliquer sur le livre pour l'ouvrir .... ou sur la croix rouge pour quitter ..." return end_if if i > 101 and i < 100 + nb_page : ' On a cliqué sur les pages entre la 2ème et l'avant dernière if even(i) = 1 : ' On a cliqué sur une page dont le N° est pair ? show i+1 : show i+2 : ' alors, on affiche les 2 pages suivantes else : ' On a cliqué sur une page dont le N° est impair ? hide i : hide i+1 : show i-2 : show i-1 : ' alors, on affiche les 2 pages précédentes end_if end_if if i = 100 + nb_page : ' On a cliqué sur la dernière page ? for i = 101 to 100 + nb_page : hide i : next i : ' Alors on cache tout hide 10 : show 100 : 2d_target_is 0 : cls : ' et on ferme le livre caption 0,"Cliquer sur le livre pour l'ouvrir .... ou sur la croix rouge pour quitter ..." on_click 100,Gestion_Clic end_if return rem ============================================================================ SUB Rediger_Pages() Page_1() Page_2() Page_3() Page_4() END_SUB rem ============================================================================ SUB Page_1() print_target_is 101 font_size 101,22 : font_color 101,200,50,20 print_locate 100,100 : print "Jean de la Fontaine" print_locate 100,150 : print "avait oublié une fable ..." print_locate 100,200 : print "... l'oubli est réparé ..." END_SUB rem ============================================================================ SUB Page_2() font_size 102,14 : font_color 102,200,50,20 print_target_is 102 print_locate 100,020 : print "Le Corbeau et le Lapin" print_locate 100,070 : print "Le Corbeau sur un arbre perché" print_locate 100,100 : print "Ne foutait rien de la journée" print_locate 100,130 : print "Le Lapin voyant le corbeau" print_locate 100,160 : print "L'interpella et lui dit aussitôt :" print_locate 100,190 : print "Moi aussi, comme toi, puis-je m'asseoir" print_locate 100,220 : print "Et ne rien foutre du matin jusqu'au soir ?" print_locate 100,250 : print "Le Corbeau lui répondit de sa branche :" print_locate 100,280 : print "Bien sûr, ami à la queue blanche," print_locate 100,310 : print "Dans l'herbe verte tu peux te coucher," print_locate 100,340 : print "Et ainsi de la vie profiter." print_locate 100,370 : print "Blanc Lapin, s'assit alors par terre," print_locate 100,400 : print "Et sous l'arbre resta à ne rien faire," print_locate 100,430 : print "Tant et si bien qu'un renard affamé" print_locate 100,460 : print "Voyant ainsi le Lapin somnoler," print_locate 100,490 : print "S'approcha du rongeur en silence," print_locate 100,520 : print "et d'une bouchée en fit sa pitance" END_SUB rem ============================================================================ SUB Page_3() font_size 103,20 : font_color 103,200,50,20 print_target_is 103
print_locate 100,200 : print "Moralité" print_locate 100,250 : print "Pour rester assis à ne rien branler" print_locate 100,300 : print "Il vaut mieux être très haut placé" END_SUB rem ============================================================================ SUB Page_4() font_size 104,40 : font_color 104,200,50,20 print_target_is 104 print_locate 200,300 : print "F I N" END_SUB rem ============================================================================
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Création et gestion d’un livre Ven 9 Mar 2018 - 17:46 | |
| Sur un autre post - Jicehel a écrit:
- Ce sujet que j'avais en tête m'est revenu avec le livre de Papydall …
J’avais cru qu’on a perdu le goût de lire des livres ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Création et gestion d’un livre Sam 10 Mar 2018 - 12:36 | |
| Mais non mais non Papydall même si je t'avoue que les seuls livres que je lis depuis près de 2 ans sont des BD (à quelques livres prêt) mais c'est plutôt par manque de temps et par ce que les jeux en prennent bcp ... | |
| | | Contenu sponsorisé
| Sujet: Re: Création et gestion d’un livre | |
| |
| | | | Création et gestion d’un livre | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |