ラップタイムの表示
function time_str(val){
sec = parseInt(val);
ms = parseInt((val- sec)*100);
mi = parseInt(sec/60);
return(""+ mi + "'" + ( '00' + sec%60 ).slice(-2) + "." + ( '00' + ms ).slice(-2));
}
var fnt_s = "40px 'MS Pゴシック'";
var fnt_m = "50px 'MS Pゴシック'";
var fnt_l = "120px 'MS Pゴシック'";
var moj_s = 40;
var moj_m = 50;
var moj_l = 120;
これば、moj_x だけで描画できます。
function draw_text(text, x, y, col, fnt, moj){
ctx.font = fnt;
wx = x - text.length*20/2;
wy = y - moj/2;
ctx.fillStyle = "block";
ctx.fillText(text, x + 2, y + 2);
ctx.fillStyle = col;
ctx.fillText(text, x, y);
}
道路の描画のループの外(draw_car(…)の場所にidxで置き換えています。)
if(idx === 0){
ctx.drawImage(img_title, 120, 120);
draw_text("[A] start game",400, 320, WHITE, fnt_m, moj_m);
move_car(0)
if(keyw2 != 0){
init_car()
idx = 1;
tmr = 0;
laps = 0;
rec = 0;
recbk = 0;
for(i=0; i < LAPS; i++){
laptime[i] = "0'00.00";
}
}
}
if(idx === 1){
n = 3 - parseInt(tmr/60);
draw_text("" + n,400, 240, YELLOW, fnt_l, moj_l);
if(tmr >= 179){
idx = 2;
tmr = 0;
}
}
if(idx === 2){
if(tmr < 60){
draw_text("Go!", 400, 240, RAD, fnt_l, moj_l);
}
rec = rec + 1/60;
drive_car(keyw, keyw2);
move_car(1);
}
if(idx === 3){
if(tmr === 1){
z = 1;
}
if(tmr === 30){
z = 1;
}
draw_text("GOAL!", 400, 240, RAD, fnt_l, moj_l);
car_spd[0] = car_spd[0]*0.96;
car_y[0] = car_y[0] + car_spd[0]/100;
move_car(1);
if(tmr > 60*8){
idx = 0;
}
}