bvs/static/fonctions_explications.js

422 lines
24 KiB
JavaScript
Raw Normal View History

2023-03-06 18:01:12 +01:00
function init_explication(){
2023-03-10 11:04:01 +01:00
alpha_ecran = 0.9
2023-03-06 18:01:12 +01:00
alpha_clignotement = 0.8
color_ecran ="rgb(255,255,255)"
color_texte = "rgb(0,0,0)"
2023-03-10 12:17:25 +01:00
color_clignotement = "rgb(255,0,255)"
epaisseur_clignotement = 6
2023-03-07 18:16:30 +01:00
font_texte = window.innerWidth
ecart_x = 50
l_texte_max = window.innerWidth-W_3D-2*ecart_x -50
2023-03-10 12:17:25 +01:00
// marge du texte
2023-03-07 18:16:30 +01:00
marge_texte_x = 20
2023-03-10 12:17:25 +01:00
marge_texte_y = 100
// deplacement pour ajouter un titre à l'ecran
dy_ecran = 50
dh_ecran = 70
2023-03-07 18:16:30 +01:00
2023-03-10 12:17:25 +01:00
// Position des boutons sur l'écran
2023-03-07 18:16:30 +01:00
w_bouton_suivant = boutons["suivant"].width*0.3
h_bouton_suivant = boutons["suivant"].height*0.3
2023-03-10 12:17:25 +01:00
temps_attente = 0
2023-03-07 18:16:30 +01:00
ecrans = [
// 0
2023-03-10 12:17:25 +01:00
{'x': W_3D + ecart_x, "y": H_3D*0.6 - dy_ecran , "w":window.innerWidth-W_3D-2*ecart_x, "h":H_3D*0.45 + dh_ecran, "c":color_ecran,"a": alpha_ecran},
2023-03-07 18:16:30 +01:00
// 1.1
2023-03-10 12:17:25 +01:00
{'x': W_3D + ecart_x, "y": H_3D*0.6 - dy_ecran, "w":window.innerWidth-W_3D-2*ecart_x, "h":H_3D*0.45 + dh_ecran, "c":color_ecran,"a": alpha_ecran},
2023-03-07 18:16:30 +01:00
// 1.2,
2023-03-10 12:17:25 +01:00
{'x': W_3D + ecart_x, "y": H_3D*0.6 - dy_ecran, "w":window.innerWidth-W_3D-2*ecart_x, "h":H_3D*0.45 + dh_ecran, "c":color_ecran,"a": alpha_ecran},
2023-03-07 18:16:30 +01:00
// 1.3
2023-03-10 12:17:25 +01:00
{'x': W_3D + ecart_x, "y": H_3D*0.6 - dy_ecran, "w":window.innerWidth-W_3D-2*ecart_x, "h":H_3D*0.45 + dh_ecran, "c":color_ecran,"a": alpha_ecran},
2023-03-07 18:16:30 +01:00
// 2.1 : Selection 1er vues
2023-03-10 12:17:25 +01:00
{'x': W_3D + ecart_x, "y": H_3D*0.6 - dy_ecran, "w":window.innerWidth-W_3D-2*ecart_x, "h":H_3D*0.45 + dh_ecran, "c":color_ecran,"a": alpha_ecran},
2023-03-07 18:16:30 +01:00
// 2.2 : clique sur fleche droite
2023-03-10 12:17:25 +01:00
{'x': W_3D + ecart_x, "y": H_3D*0.6 - dy_ecran, "w":window.innerWidth-W_3D-2*ecart_x, "h":H_3D*0.45 + dh_ecran, "c":color_ecran,"a": alpha_ecran},
2023-03-07 18:16:30 +01:00
// 2.3 : clique sur fleche haut
2023-03-10 12:17:25 +01:00
{'x': W_3D + ecart_x, "y": H_3D*0.6 - dy_ecran, "w":window.innerWidth-W_3D-2*ecart_x, "h":H_3D*0.45 + dh_ecran, "c":color_ecran,"a": alpha_ecran},
2023-03-07 18:16:30 +01:00
// 2.4 : clique sur fleche haut
2023-03-10 12:17:25 +01:00
{'x': W_3D + ecart_x, "y": H_3D*0.6 - dy_ecran, "w":window.innerWidth-W_3D-2*ecart_x, "h":H_3D*0.45 + dh_ecran, "c":color_ecran,"a": alpha_ecran},
2023-03-07 18:16:30 +01:00
// 2.5 : PBL trop haut
2023-03-10 12:17:25 +01:00
{'x': W_3D + ecart_x, "y": H_3D*0.6 - dy_ecran, "w":window.innerWidth-W_3D-2*ecart_x, "h":H_3D*0.45 + dh_ecran, "c":color_ecran,"a": alpha_ecran},
2023-03-07 18:16:30 +01:00
// 3.1 : clique sur fleche bas
2023-03-10 12:17:25 +01:00
{'x': W_3D + ecart_x, "y": H_3D*0.6 - dy_ecran, "w":window.innerWidth-W_3D-2*ecart_x, "h":H_3D*0.45 + dh_ecran, "c":color_ecran,"a": alpha_ecran},
2023-03-07 18:16:30 +01:00
// 3.2 : clique sur fleche bas
2023-03-10 12:17:25 +01:00
{'x': W_3D + ecart_x, "y": H_3D*0.6 - dy_ecran, "w":window.innerWidth-W_3D-2*ecart_x, "h":H_3D*0.45 + dh_ecran, "c":color_ecran,"a": alpha_ecran},
2023-03-07 18:16:30 +01:00
// 3.3 : clique sur fleche droite
2023-03-10 12:17:25 +01:00
{'x': W_3D + ecart_x, "y": H_3D*0.6 - dy_ecran, "w":window.innerWidth-W_3D-2*ecart_x, "h":H_3D*0.45 + dh_ecran, "c":color_ecran,"a": alpha_ecran},
2023-03-07 18:16:30 +01:00
// 4: Selection de la vue
2023-03-10 12:17:25 +01:00
{'x': W_3D + ecart_x, "y": H_3D*0.6 - dy_ecran, "w":window.innerWidth-W_3D-2*ecart_x, "h":H_3D*0.45 + dh_ecran, "c":color_ecran,"a": alpha_ecran}
2023-03-07 18:16:30 +01:00
]
2023-03-10 12:17:25 +01:00
2023-03-07 18:16:30 +01:00
textes = [
// 0
2023-03-10 12:17:25 +01:00
{"t":"Here is how the interface looks like. (PRESS NEXT BUTTON)", "x": ecrans[0].x + marge_texte_x, "y": ecrans[0].y + marge_texte_y, "f":0.010, "l":l_texte_max, "c":color_texte, "i":50},
2023-03-07 18:16:30 +01:00
// 1.1 : ecran 3D
2023-03-10 12:17:25 +01:00
{"t":"You have: A screen to view the 3D object. (PRESS NEXT BUTTON)", "x": ecrans[1].x + marge_texte_x, "y": ecrans[1].y + marge_texte_y, "f":0.010, "l":l_texte_max, "c":color_texte, "i":50},
2023-03-07 18:16:30 +01:00
// 1.2 : fleche
2023-03-10 12:17:25 +01:00
{"t":"You have: Arrows to move the 3D object. (PRESS NEXT BUTTON)", "x": ecrans[2].x + marge_texte_x, "y": ecrans[2].y + marge_texte_y, "f":0.010, "l":l_texte_max, "c":color_texte, "i":50},
2023-03-07 18:16:30 +01:00
// 1.3 : bouton
2023-03-10 12:17:25 +01:00
{"t":"You have: Buttons to make your selection. (PRESS NEXT BUTTON)", "x": ecrans[3].x + marge_texte_x, "y": ecrans[3].y + marge_texte_y, "f":0.010, "l":l_texte_max, "c":color_texte, "i":50},
2023-03-07 18:16:30 +01:00
// 2.1 : Selection 1er vues
2023-03-10 12:17:25 +01:00
{"t":"Let's try to select your first view. To do this, let's move the 3D model. (PRESS NEXT BUTTON) ", "x": ecrans[4].x + marge_texte_x, "y": ecrans[4].y + marge_texte_y, "f":0.010, "l":l_texte_max, "c":color_texte, "i":50},
2023-03-07 18:16:30 +01:00
// 2.2 : clique sur fleche droite
2023-03-10 12:17:25 +01:00
{"t":"Let's try to select your first view. To do this, let's move the 3D model. (PRESS RIGHT ARROW)", "x": ecrans[4].x + marge_texte_x, "y": ecrans[4].y + marge_texte_y, "f":0.010, "l":l_texte_max, "c":color_texte, "i":50},
2023-03-07 18:16:30 +01:00
// 2.3 : clique sur fleche haut
2023-03-10 12:17:25 +01:00
{"t":"Let's try to select your first view. To do this, let's move the 3D model. (PRESS UP ARROW)", "x": ecrans[4].x + marge_texte_x, "y": ecrans[4].y + marge_texte_y, "f":0.010, "l":l_texte_max, "c":color_texte, "i":50},
2023-03-07 18:16:30 +01:00
// 2.4 : clique sur fleche haut
2023-03-10 12:17:25 +01:00
{"t":"ArrowUp once again. (PRESS UP ARROW)", "x": ecrans[4].x + marge_texte_x, "y": ecrans[4].y + marge_texte_y, "f":0.010, "l":l_texte_max, "c":color_texte, "i":50},
2023-03-07 18:16:30 +01:00
// 2.5 : PBL trop haut
2023-03-10 12:17:25 +01:00
{"t":"You can't go further. Error messages may appear if you make impossible manipulations. Now let's try again to select our first view : GO DOWN. (PRESS DOWN ARROW)", "x": ecrans[4].x + marge_texte_x, "y": ecrans[4].y + marge_texte_y, "f":0.01, "l":l_texte_max, "c":color_texte, "i":50},
2023-03-07 18:16:30 +01:00
// 3.1 : clique sur fleche bas
2023-03-10 12:17:25 +01:00
{"t":"It's better. Once again. (PRESS DOWN ARROW)", "x": ecrans[4].x + marge_texte_x, "y": ecrans[4].y + marge_texte_y, "f":0.010, "l":l_texte_max, "c":color_texte, "i":50},
2023-03-07 18:16:30 +01:00
// 3.2 : clique sur fleche bas
2023-03-10 12:17:25 +01:00
{"t":"It's better. Go to the right. (PRESS RIGHT ARROW)", "x": ecrans[4].x + marge_texte_x, "y": ecrans[4].y + marge_texte_y, "f":0.010, "l":l_texte_max, "c":color_texte, "i":50},
2023-03-07 18:16:30 +01:00
// 3.3 : clique sur fleche bas
2023-03-10 12:17:25 +01:00
{"t":"Let's imagine that you choose this point of view. You have to select it with the button. (PRESS SELECT BUTTON)", "x": ecrans[4].x + marge_texte_x, "y": ecrans[4].y + marge_texte_y, "f":0.01, "l":l_texte_max, "c":color_texte, "i":50},
2023-03-07 18:16:30 +01:00
// 4 :
2023-03-10 12:17:25 +01:00
{"t":"You have chosen your first viewpoint. It is displayed on your right. This one has become gray on the 3D screen. You can no longer select it. (PRESS NEXT BUTTON)", "x": ecrans[4].x + marge_texte_x, "y": ecrans[4].y + marge_texte_y, "f":0.01, "l":l_texte_max, "c":color_texte, "i":50},
2023-03-07 18:16:30 +01:00
]
positions_bouton = [
// 0
{"afficher": true, "x": ecrans[0].x + ecrans[0].w - w_bouton_suivant - marge_texte_x, "y": ecrans[0].y + ecrans[0].h - h_bouton_suivant - marge_texte_x/2, "w": w_bouton_suivant, "h":h_bouton_suivant},
// 1.1
{"afficher": true, "x": ecrans[1].x + ecrans[1].w - w_bouton_suivant - marge_texte_x, "y": ecrans[1].y + ecrans[1].h - h_bouton_suivant - marge_texte_x/2, "w": w_bouton_suivant, "h":h_bouton_suivant},
// 1.2
{"afficher": true, "x": ecrans[2].x + ecrans[2].w - w_bouton_suivant - marge_texte_x, "y": ecrans[2].y + ecrans[2].h - h_bouton_suivant - marge_texte_x/2, "w": w_bouton_suivant, "h":h_bouton_suivant},
// 1.3
{"afficher": true, "x": ecrans[3].x + ecrans[3].w - w_bouton_suivant - marge_texte_x, "y": ecrans[3].y + ecrans[3].h - h_bouton_suivant - marge_texte_x/2, "w": w_bouton_suivant, "h":h_bouton_suivant},
// 2.1 : Selection 1er vues
{"afficher": true, "x": ecrans[4].x + ecrans[4].w - w_bouton_suivant - marge_texte_x, "y": ecrans[4].y + ecrans[4].h - h_bouton_suivant - marge_texte_x/2, "w": w_bouton_suivant, "h":h_bouton_suivant},
// 2.2 : clique sur fleche droite
{"afficher": true, "x": ecrans[5].x + ecrans[5].w - w_bouton_suivant - marge_texte_x, "y": ecrans[5].y + ecrans[5].h - h_bouton_suivant - marge_texte_x/2, "w": w_bouton_suivant, "h":h_bouton_suivant},
// 2.3 : clique sur fleche haut
{"afficher": true, "x": ecrans[6].x + ecrans[6].w - w_bouton_suivant - marge_texte_x, "y": ecrans[6].y + ecrans[6].h - h_bouton_suivant - marge_texte_x/2, "w": w_bouton_suivant, "h":h_bouton_suivant},
// 2.4 : clique sur fleche haut
{"afficher": true, "x": ecrans[7].x + ecrans[7].w - w_bouton_suivant - marge_texte_x, "y": ecrans[7].y + ecrans[7].h - h_bouton_suivant - marge_texte_x/2, "w": w_bouton_suivant, "h":h_bouton_suivant},
// 2.5 : PBL trop haut
{"afficher": true, "x": ecrans[8].x + ecrans[8].w - w_bouton_suivant - marge_texte_x, "y": ecrans[8].y + ecrans[8].h - h_bouton_suivant - marge_texte_x/2, "w": w_bouton_suivant, "h":h_bouton_suivant},
// 3.1 : clique sur fleche bas
{"afficher": true, "x": ecrans[9].x + ecrans[9].w - w_bouton_suivant - marge_texte_x, "y": ecrans[9].y + ecrans[9].h - h_bouton_suivant - marge_texte_x/2, "w": w_bouton_suivant, "h":h_bouton_suivant},
// 3.2 : clique sur fleche bas
{"afficher": true, "x": ecrans[10].x + ecrans[10].w - w_bouton_suivant - marge_texte_x, "y": ecrans[10].y + ecrans[10].h - h_bouton_suivant - marge_texte_x/2, "w": w_bouton_suivant, "h":h_bouton_suivant},
// 3.3 : clique sur fleche droite
{"afficher": true, "x": ecrans[11].x + ecrans[11].w - w_bouton_suivant - marge_texte_x, "y": ecrans[11].y + ecrans[11].h - h_bouton_suivant - marge_texte_x/2, "w": w_bouton_suivant, "h":h_bouton_suivant},
// 4
{"afficher": true, "x": ecrans[12].x + ecrans[12].w - w_bouton_suivant - marge_texte_x, "y": ecrans[12].y + ecrans[12].h - h_bouton_suivant - marge_texte_x/2, "w": w_bouton_suivant, "h":h_bouton_suivant}
2023-03-06 18:01:12 +01:00
]
2023-03-07 18:16:30 +01:00
clignotements = [
// 0
2023-03-10 08:57:25 +01:00
{"type":"a_cliquer", "x":positions_bouton[0].x, "y":positions_bouton[0].y, "w":positions_bouton[0].w, "h":positions_bouton[0].h, "c":color_clignotement,"a": alpha_clignotement, "t": temps_attente},
2023-03-07 18:16:30 +01:00
// 1.1 : ecran 3D
2023-03-10 08:57:25 +01:00
[{"type":"a_regarder", "x":0, "y":h_progress_bar, "w":W_3D, "h":H_3D, "c":color_clignotement,"a": alpha_clignotement, "t": 500},
{"type":"a_cliquer", "x":positions_bouton[1].x, "y":positions_bouton[1].y, "w":positions_bouton[1].w, "h":positions_bouton[1].h, "c":color_clignotement,"a": alpha_clignotement, "t": temps_attente},
],
2023-03-07 18:16:30 +01:00
// 1.2 : fleche
2023-03-10 12:17:25 +01:00
[{"type":"a_regarder", "x": W_3D*0.2-b, "y":H_3D+DY, "w":b+a+b, "h":b+a+b, "c":color_clignotement,"a": alpha_clignotement, "t": temps_attente},
2023-03-10 08:57:25 +01:00
{"type":"a_cliquer", "x":positions_bouton[2].x, "y":positions_bouton[2].y, "w":positions_bouton[2].w, "h":positions_bouton[2].h, "c":color_clignotement,"a": alpha_clignotement, "t": temps_attente},
],
2023-03-07 18:16:30 +01:00
// 1.3
2023-03-10 08:57:25 +01:00
[{"type":"a_regarder", "x":W_3D*pos_bouton, "y":H_3D+dy*2, "w":w_bouton*2 + ecart_bouton, "h":h_bouton*2+ecart_bouton, "c":color_clignotement,"a": alpha_clignotement, "t": 500},
{"type":"a_cliquer", "x": positions_bouton[3].x, "y":positions_bouton[3].y, "w":positions_bouton[3].w, "h":positions_bouton[3].h, "c":color_clignotement,"a": alpha_clignotement, "t": temps_attente},
],
2023-03-07 18:16:30 +01:00
// 2.1 : Selection 1er vues
2023-03-10 08:57:25 +01:00
{"type":"a_cliquer", "x": positions_bouton[4].x, "y":positions_bouton[4].y, "w":positions_bouton[4].w, "h":positions_bouton[4].h, "c":color_clignotement,"a": alpha_clignotement, "t": temps_attente},
2023-03-07 18:16:30 +01:00
// 2.2 : clique sur fleche droite
2023-03-10 12:17:25 +01:00
{"type":"a_cliquer", "x": W_3D*0.2+a, "y":H_3D+DY+b, "w":b, "h":a, "c":color_clignotement,"a":alpha_clignotement, "t": temps_attente},
2023-03-07 18:16:30 +01:00
// 2.3 : clique sur fleche haut
2023-03-10 12:17:25 +01:00
{"type":"a_cliquer", "x": W_3D*0.2, "y":H_3D+DY, "w":a, "h":b, "c":color_clignotement,"a":alpha_clignotement, "t": temps_attente},
2023-03-07 18:16:30 +01:00
// 2.4 : clique sur fleche haut
2023-03-10 12:17:25 +01:00
{"type":"a_cliquer", "x": W_3D*0.2, "y":H_3D+DY, "w":a, "h":b, "c":color_clignotement,"a":alpha_clignotement, "t": temps_attente},
2023-03-07 18:16:30 +01:00
// 2.5 : PBL trop haut
2023-03-10 12:17:25 +01:00
{"type":"a_cliquer", "x": W_3D*0.2, "y":H_3D+DY+b+a, "w":a, "h":b, "c":color_clignotement,"a":alpha_clignotement, "t": temps_attente},
2023-03-07 18:16:30 +01:00
// 3.1 : clique sur fleche bas
2023-03-10 12:17:25 +01:00
{"type":"a_cliquer", "x": W_3D*0.2, "y":H_3D+DY+b+a, "w":a, "h":b, "c":color_clignotement,"a":alpha_clignotement, "t": temps_attente},
2023-03-07 18:16:30 +01:00
// 3.2 : clique sur fleche bas --> next step fleche droite
2023-03-10 12:17:25 +01:00
{"type":"a_cliquer", "x": W_3D*0.2+a, "y":H_3D+DY+b, "w":b, "h":a, "c":color_clignotement,"a":alpha_clignotement, "t": temps_attente},
2023-03-07 18:16:30 +01:00
// 3.3 : clique sur fleche drioite --> next step bouton pose
2023-03-10 12:17:25 +01:00
{"type":"a_cliquer", "x": W_3D*pos_bouton, "y": H_3D+dy*2, "w": w_bouton, "h": h_bouton, "c":color_clignotement,"a":alpha_clignotement, "t": temps_attente},
2023-03-07 18:16:30 +01:00
// 4
2023-03-10 12:17:25 +01:00
{"type":"a_cliquer", "x": positions_bouton[12].x, "y":positions_bouton[12].y, "w":positions_bouton[12].w, "h":positions_bouton[12].h, "c":color_clignotement,"a": alpha_clignotement, "t": temps_attente}
2023-03-07 18:16:30 +01:00
]
conditions_suivant = [
// 0
{"type": "bouton", "x": positions_bouton[0].x, "y": positions_bouton[0].y, "w": positions_bouton[0].w, "h": positions_bouton[0].h},
// 1.1
{"type": "bouton", "x": positions_bouton[1].x, "y": positions_bouton[1].y, "w": positions_bouton[1].w, "h": positions_bouton[1].h},
// 1.2
{"type": "bouton", "x": positions_bouton[2].x, "y": positions_bouton[2].y, "w": positions_bouton[2].w, "h": positions_bouton[2].h},
// 1.3
{"type": "bouton", "x": positions_bouton[3].x, "y": positions_bouton[3].y, "w": positions_bouton[3].w, "h": positions_bouton[3].h},
// 2.1 : Selection 1er vues
{"type": "bouton", "x": positions_bouton[4].x, "y": positions_bouton[4].y, "w": positions_bouton[4].w, "h": positions_bouton[4].h},
// 2.2 : clique sur fleche droite
{"type": "fleche_d", "x": clignotements[5].x, "y": clignotements[5].y, "w": clignotements[5].w, "h": clignotements[5].h},
// 2.3 : clique sur fleche haut
{"type": "fleche_h", "x": clignotements[6].x, "y": clignotements[6].y, "w": clignotements[6].w, "h": clignotements[6].h},
// 2.4 : clique sur fleche haut
{"type": "fleche_h", "x": clignotements[7].x, "y": clignotements[7].y, "w": clignotements[7].w, "h": clignotements[7].h},
// 2.5 : PBL trop haut
{"type": "fleche_b", "x": clignotements[8].x, "y": clignotements[8].y, "w": clignotements[8].w, "h": clignotements[8].h},
// 3.1 : clique sur fleche bas
{"type": "fleche_b", "x": clignotements[9].x, "y": clignotements[9].y, "w": clignotements[9].w, "h": clignotements[9].h},
// 3.2 : clique sur fleche bas
{"type": "fleche_d", "x": clignotements[10].x, "y": clignotements[10].y, "w": clignotements[10].w, "h": clignotements[10].h},
// 3.3 : clique sur bouton pose
{"type": "bouton_pose", "x": clignotements[11].x, "y": clignotements[11].y, "w": clignotements[11].w, "h": clignotements[11].h},
// 4 : clique sur next
{"type": "bouton", "x": positions_bouton[12].x, "y":positions_bouton[12].y, "w":positions_bouton[12].w, "h":positions_bouton[12].h}
]
nb_action = ecrans.length
2023-03-06 18:01:12 +01:00
num_action = 0
2023-03-07 18:16:30 +01:00
nb_click_explication = 0
2023-03-10 08:57:25 +01:00
time_clicke = time_animate
console.log('initttt')
2023-03-07 18:16:30 +01:00
2023-03-06 18:01:12 +01:00
}
2023-03-07 18:16:30 +01:00
function traitement_explications(idx_i_explication, idx_j_explication){
temps_pop = 8000
if (num_action==0){
idx_i = idx_i_explication
idx_j = idx_j_explication
}
2023-03-10 12:17:25 +01:00
//console.log("debut", idx_i, idx_j, num_action)
2023-03-07 18:16:30 +01:00
2023-03-06 16:02:20 +01:00
ctx.strokeStyle = "rgb(255, 255, 255)" // Pour que le contour soit rouge
ctx.fillStyle = "rgb(255, 255, 255)" // Pour que l'intérieur soit bleu
2023-03-07 18:16:30 +01:00
if (num_action < nb_action ){
// Données
ecran = ecrans[num_action]
texte = textes[num_action]
clignotement = clignotements[num_action]
position_bouton = positions_bouton[num_action]
condition_suivant = conditions_suivant[num_action]
2023-03-06 16:02:20 +01:00
2023-03-10 12:17:25 +01:00
// ecran blanc
2023-03-07 18:16:30 +01:00
afficher_ecran(ecran.x, ecran.y, ecran.w, ecran.h, ecran.c, ecran.a )
print_text(handle_text(texte.t, texte.x, texte.y, texte.f*font_texte +"pt Courier", texte.l, texte.c, texte.i))
2023-03-10 12:17:25 +01:00
print_text(handle_text("Guidelines to follow:", ecran.x +marge_texte_x, ecran.y+52, 0.016*font_texte +"pt Courier", texte.l, "#EF476F", texte.i))
2023-03-07 18:16:30 +01:00
2023-03-10 12:17:25 +01:00
// survol de tous les boutons
2023-03-07 18:16:30 +01:00
survol_bouton()
// s'il faut afficher le bouton next/previous
if (position_bouton.afficher){
// bouton suivant
ctx.drawImage(boutons['suivant'], position_bouton.x, position_bouton.y, position_bouton.w, position_bouton.h)
if (is_inside(xyMouseMove, position_bouton.x, position_bouton.y, position_bouton.w, position_bouton.h)){
2023-03-10 08:57:25 +01:00
//console.log('ttt')
2023-03-07 18:16:30 +01:00
draw_rectangle(position_bouton.x, position_bouton.y, position_bouton.w, position_bouton.h, "rgb(200, 200, 200)", 0.6)}
// Bouton previous
if (num_action>0){
ctx.drawImage(boutons['avant'], position_bouton.x - w_bouton_suivant - marge_texte_x, position_bouton.y, position_bouton.w, position_bouton.h)
if (is_inside(xyMouseMove, position_bouton.x - w_bouton_suivant - marge_texte_x, position_bouton.y, position_bouton.w, position_bouton.h)){
2023-03-10 08:57:25 +01:00
//console.log("dedans")
2023-03-07 18:16:30 +01:00
draw_rectangle(position_bouton.x - w_bouton_suivant - marge_texte_x, position_bouton.y, position_bouton.w, position_bouton.h, "rgb(200, 200, 200)", 0.6)}
}
}
2023-03-10 08:57:25 +01:00
// 1 clignotement courant donc taille = 8 car 8 keys
if (Object.keys(clignotement).length == 8){
if (time_animate > time_clicke + clignotement.t && num_action!=12 && clignotement.type=="a_cliquer"){
2023-03-10 12:17:25 +01:00
clignotement_contour(2000, clignotement.x, clignotement.y, clignotement.w, clignotement.h, clignotement.c, epaisseur_clignotement)
2023-03-10 08:57:25 +01:00
}
if (time_animate > time_clicke + clignotement.t && clignotement.type=="a_regarder"){
clignotement_rectangle(2000, clignotement.x, clignotement.y, clignotement.w, clignotement.h, "rgb(17, 138, 178)", 0.6)
}
// on a plusieurs clignotement
} else {
for(let p=0; p<clignotement.length; p++){
clignotement_p = clignotement[p]
// contour
if (time_animate > time_clicke + clignotement_p.t && num_action!=12 && clignotement_p.type=="a_cliquer"){
2023-03-10 12:17:25 +01:00
clignotement_contour(2000, clignotement_p.x, clignotement_p.y, clignotement_p.w, clignotement_p.h, clignotement_p.c, epaisseur_clignotement)
2023-03-10 08:57:25 +01:00
}
// rectangle
if (time_animate > time_clicke + clignotement_p.t && clignotement_p.type=="a_regarder"){
clignotement_rectangle(2000, clignotement_p.x, clignotement_p.y, clignotement_p.w, clignotement_p.h, "rgb(17, 138, 178)", 0.6)
}
}
}
2023-03-07 18:16:30 +01:00
// si on clique sur NEXT
if (condition_suivant.type =="bouton" && clicked && click_inside(xyMouseDown, condition_suivant.x, condition_suivant.y, condition_suivant.w, condition_suivant.h)){
console.log("next")
action_suivante()
2023-03-10 08:57:25 +01:00
2023-03-07 18:16:30 +01:00
}
// Si on clique sur PREVIOUS
//if (condition_suivant.type =="bouton" && num_action >0 && clicked && click_inside(xyMouseDown, condition_suivant.x- w_bouton_suivant - marge_texte_x, condition_suivant.y, condition_suivant.w, condition_suivant.h)){
if (num_action >0 && clicked && click_inside(xyMouseDown, position_bouton.x- w_bouton_suivant - marge_texte_x, position_bouton.y, position_bouton.w, position_bouton.h)){
console.log("previous")
action_previous_explication()
}
// Si on clique sur Fleche droite
if (condition_suivant.type =="fleche_d" && num_action > 0 && clicked && click_inside(xyMouseDown, condition_suivant.x, condition_suivant.y, condition_suivant.w, condition_suivant.h)){
console.log("fleche_d")
action_droite_explication()
}
// Si on clique sur Fleche Haut
if (condition_suivant.type =="fleche_h" && num_action > 0 && clicked && click_inside(xyMouseDown, condition_suivant.x, condition_suivant.y, condition_suivant.w, condition_suivant.h)){
console.log("fleche_h")
action_haut_explication()
}
// Si on clique sur Fleche bas
if (condition_suivant.type =="fleche_b" && num_action > 0 && clicked && click_inside(xyMouseDown, condition_suivant.x, condition_suivant.y, condition_suivant.w, condition_suivant.h)){
console.log("fleche_b")
texte_temporaire = {}
action_bas_explication()
}
// Si on clique sur Fleche bas
if (condition_suivant.type =="bouton_pose" && num_action > 0 && clicked && click_inside(xyMouseDown, condition_suivant.x, condition_suivant.y, condition_suivant.w, condition_suivant.h)){
console.log("bouton_pose")
action_bouton_pose()
action_suivante()
}
// FIN du tuto
if (num_action==nb_action){
console.log("explications finies")
action_fin_explication()
}
}
}
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function action_fin_explication(){
choix_courant = {}
liste_poses = []
nb_choix_fait = 0
page_explication = false
page_vues = true
interactions.push({"time": new Date().getTime(), "type": "Fin explication. Début des choix."})
}
function action_previous_explication(){
if ((num_action == 6) || (num_action == 11)){action_fleche_gauche(); update_mesh(idx_i, idx_j)}
if ((num_action == 7) ){action_fleche_bas(); update_mesh(idx_i, idx_j)}
if ((num_action == 9) || (num_action == 10) ){action_fleche_haut(); update_mesh(idx_i, idx_j)}
if (num_action == 12){action_bouton_retirer()}
action_precedente()
2023-03-06 16:02:20 +01:00
}
2023-03-07 18:16:30 +01:00
function action_haut_explication(){
action_fleche_haut()
update_mesh(idx_i, idx_j)
action_suivante()
}
function action_droite_explication(){
action_fleche_droite()
update_mesh(idx_i, idx_j)
action_suivante()
}
function action_bas_explication(){
action_fleche_bas()
update_mesh(idx_i, idx_j)
action_suivante()
}
function action_suivante(){
num_action = num_action+1
2023-03-10 08:57:25 +01:00
time_clicke = time_animate
2023-03-07 18:16:30 +01:00
}
function action_precedente(){
num_action = num_action-1
2023-03-10 08:57:25 +01:00
time_clicke = time_animate
2023-03-07 18:16:30 +01:00
}
function update_mesh(I,J){
theta = 2*Math.PI * ( (2/8)*(J==0) + (1/8)*(J==1) + (-1/8)*(J==3) + (-2/8)*(J==4))
delta = 2*Math.PI * (I/8)
//camera.position.set(R*Math.cos(theta)*Math.cos(delta), R*Math.sin(theta)*Math.cos(delta), R*Math.sin(delta)) // repère wiki
camera.position.set(R*Math.cos(delta)*Math.cos(theta), R*Math.sin(theta), R*Math.sin(delta)*Math.cos(theta)) // repère JS
camera.lookAt(0, 0, 0)
}
function action_clavier_explication(event){
switch (event.key){
// selectionner pose
case ' ' :
if (num_action==11){
console.log("pose clavier")
action_bouton_pose()
action_suivante() }
break;
// valider
case 'Enter':
console.log("next clavier")
if (num_action < nb_action && condition_suivant.type =="bouton"){
action_suivante()}
if (num_action == nb_action){
action_fin_explication()
}
break;
case 'Backspace':
if (num_action > 0){
if (num_action == 6){action_fleche_gauche(); update_mesh(idx_i, idx_j)}
if ((num_action == 7) ){action_fleche_bas(); update_mesh(idx_i, idx_j)}
console.log("previous clavier")
action_precedente()}
break;
case 'ArrowRight' :
if (condition_suivant.type =="fleche_d"){
console.log("fleche_d clavier")
action_droite_explication()
}
break
case 'ArrowUp' :
if (condition_suivant.type =="fleche_h"){
console.log("fleche_h clavier")
action_haut_explication()
}
break
case 'ArrowDown' :
if (condition_suivant.type =="fleche_b"){
console.log("fleche_b clavier")
action_bas_explication()
}
break
}
}
function survol_bouton_explication(){
if (is_inside(xyMouseMove, W_3D*pos_bouton, H_3D+dy*2, w_bouton, h_bouton)){draw_rectangle(W_3D*pos_bouton, H_3D+dy*2, w_bouton, h_bouton, "rgb(200, 200, 200)", 0.6)}
2023-03-06 16:02:20 +01:00
}
2023-03-07 18:16:30 +01:00
//ctx.clearRect(0, 0, canvas.width, canvas.height)
//texte = "Explications"
//font = "42pt Courier"
//ctx.font = font
//largeur = ctx.measureText(texte).width
//ctx.fillText(texte, (window.innerWidth/2)- (largeur/2), 100)