運試し
ポイントカードで買い物したり、福引きセールでガラガラを回すときはちょっぴり胸がときめきます。市民生活における小さな息抜きは楽しいものです。
ダーツ、吹き矢、射的などで的めがけて矢を射るゲームは古今東西、多く見かけます。
ここでは、HTML、JavaScriptで小さなゲームを作って夏休みの宿題を盛り上げましょう。
▶ボタンを押下して運試しスタートです。ラッキーセブンを引き当てたらファンファーレが鳴り響きます。
7を出すコツの難易度はそこそこです。サンプルコードを末尾に挙げました。参考にしてください。
サンプルコード
<!DOCTYPE html> <html> <body> <Div id="top" style="width:600px; height:600px; border:1px solid blue; font-size:64px; color:mediumvioletred; background-color:lightyellow;"> <img src="https://aidesign.lolipop.jp/wp-content/uploads/2019/08/kujibiki2.png" width="285" height="150" style="margin-left:150px;"> <span style="font-size:10px; color:blue;">©2019 TacM,Ver0.01</span> <img id="disc" src="https://aidesign.lolipop.jp/wp-content/uploads/2017/10/turnTable.png" style="width:360px; height:360px; margin-left:110px; margin-top:15px; transform:rotate(90deg);"> <div style="margin-left:470px; margin-top:-205px; font-size:32px;">🎯</div> <!-- ⇦ --> <a href="javascript:void(0)" onclick="startStop();return false;" style="text-decoration:none;"> <div id="playstop" style="margin-left:10px; margin-top:130px; font-size:64px;">▶</div> </a> <div id="luckyNo" style="margin-left:460px; margin-top:-140px; font-size:96px; color:blueviolet;">🌸</div> </Div> <audio id="atari" src="https://aidesign.lolipop.jp/wp-content/uploads/2017/10/1tosho.mp3"></audio> <script type="text/javascript" charset="utf-8"> var interval=40; //回転スピード, 74 ~ 10 var clickCount=degree=-1; //clickCount:開始/停止, degree:回転角 function startStop(){ //開始あるいは停止を制御する関数 var k = ++clickCount % 2; document.getElementById("playstop").innerHTML = "\u23f9\u25b6".substr(k, 1); if(k==0){setTimeout('revolution()', interval);document.getElementById("top").style.backgroundColor="lightyellow";} //停止中から開始 } function revolution(){ //回転を制御する関数, intervalの間隔で起動 var d=(++degree)%36*10+90; //0 5 10 15 20 ~ 355, 90 ~ 440 var e=Math.floor((d-72)/36) % 10; //0 ~ 9 document.getElementById("luckyNo").innerHTML = e; //console.log("Degree=", degree, d,e); document.getElementById("disc").style.transform="rotate("+d+"deg)"; //回転を制御 if((clickCount % 2)==0) setTimeout('revolution()', interval); //引き続き回転を制御する else{ //停止指令を受けた if(e==7){document.getElementById("atari").play();document.getElementById("top").style.backgroundColor="hotpink";} //大当たり } } </script> </body> </html>