$(function () { var ua = window.navigator.userAgent; var is_SP = isSP = (ua.indexOf("iPhone") > 0 || ua.indexOf("iPod") > 0 || ua.indexOf("iPod") > 0 || ua.indexOf("Android") > 0) ? true : false; var window_width = window.innerWidth; var window_height = window.innerHeight; var canvas = document.getElementById("canvas"); //2本指によるピンチイン・ピンチアウトを無効化。 /* document.documentElement.addEventListener('touchstart', function (e) { if (e.touches.length > 1) { e.preventDefault(); } }, { passive: false }); */ $(window).resize(function(){ var window_rate = $(window).height() / $(window).width(); if(is_SP && window_rate >= 1.778666){ $("#wrap").css("transform", "scale(" + ($(window).width() / 750) + ")"); }else{ $("#wrap").css("transform", "scale(" + ($(window).height() / 1334) + ")"); } }); $(window).trigger("resize"); if(is_SP){ $("html, body").css("background-color", "#000000"); }else{ $("html, body").css("background-color", "#ffffff"); } /* ======================================== ゲーム本体関連の処理 ======================================== */ // ゲームの進行状況。10000を超えると結果画面へ移動 var game_progress = 0; // game_progressが10000を超えた時にtrueとなる var progress_complete_flg = false; // ゲーム画面。ダブルタップが無効となる var game_stage = document.getElementById("tochimaru_gameStage"); var canvas_progressBar = document.getElementById("canvas_progressBar"); var progressBar_ctx = canvas_progressBar.getContext("2d"); /* //バーに表示する用の var progressBar_tochimaru = new Image(); progressBar_tochimaru.src = "img/main02_progressBar_tochimaru.png"; */ //ゲームの初期化 function initGame() { game_progress = 0; progress_complete_flg = false; drawProgressBar(0); } //カウントアップして進行バーを更新。MAXになったら飛ぶ。 function drawProgressBar(num) { game_progress += num; progressBar_ctx.clearRect(0, 0, canvas_progressBar.width, canvas_progressBar.height); progressBar_ctx.lineCap = "round"; progressBar_ctx.lineWidth = 60; progressBar_ctx.strokeStyle = "#ffffff"; progressBar_ctx.beginPath(); progressBar_ctx.moveTo(50, 170); progressBar_ctx.lineTo(550, 170); progressBar_ctx.stroke(); var progress_meter_x = Math.min((game_progress / 10000), 1); progressBar_ctx.lineWidth = 48; //バーの色を変えるよ! if (game_progress >= 10000) { progressBar_ctx.strokeStyle = "#ff0000"; } else if (game_progress >= 7500) { progressBar_ctx.strokeStyle = "#ff8000"; } else if (game_progress >= 5000) { progressBar_ctx.strokeStyle = "#ffcc00"; } else if (game_progress >= 2500) { progressBar_ctx.strokeStyle = "#80cc00"; } else { progressBar_ctx.strokeStyle = "#00cccc"; } progressBar_ctx.beginPath(); progressBar_ctx.moveTo(50, 170); progressBar_ctx.lineTo((50 + progress_meter_x * 500), 170); progressBar_ctx.stroke(); //progressBar_ctx.drawImage(progressBar_tochimaru, progress_meter_x * 500, 65, 80, 80); //メーターがMAXになった時の処理 if (progress_meter_x == 1 && progress_complete_flg == false) { showResult(); progress_complete_flg = true; $("#tochimaru_gameStage").css("display", "none"); $("#canvas_progressBar").css("opacity", "0"); exportRoot.gotoAndPlay("END"); } } //SPのみジャイロセンサー有効。 if (is_SP) { var old_x, old_y, old_z; //デバイスモーション window.addEventListener('devicemotion', function (e) { //gameStage_tochimaruが表示されている時=ゲーム中のみ加速度分を加算する if ($("#tochimaru_gameStage").css("display") == "block") { //加速度を取得 var acc_x = Math.abs(e.acceleration.x); var acc_y = Math.abs(e.acceleration.y); var acc_z = Math.abs(e.acceleration.z); var sabun = Math.abs(old_x - acc_x) + Math.abs(old_y - acc_y) + Math.abs(old_z - acc_z); //加速度が直近とほぼ同じ=静止状態の場合は、drawProgressBarを実行しない if (sabun >= 1) { drawProgressBar(sabun * 2.5); } old_x = acc_x; old_y = acc_y; old_z = acc_z; } }); } //とちまるくんタップし始めたときの処理 $("#gameStage_tochimaru").on("touchstart mousedown", function () { $(this).css("transform", "scale(0.95)"); event.preventDefault(); }); //とちまるくんタップし終えたときの処理 $("#gameStage_tochimaru").on("touchend mouseup", function (event) { drawProgressBar(400); $(this).css("transform", "scale(1)"); event.preventDefault(); }); var tap_time = new Date().getTime(); $("#canvas, #main_result, #canvas_progressBar").on("touchend mouseup", function (event) { var now_time = new Date().getTime(); if((now_time - tap_time) <= 300){ event.preventDefault(); tap_time = new Date().getTime(); }else{ tap_time = new Date().getTime(); } }); /* ======================================== 結果画面関連の処理 ======================================== */ //CSVを読みこむ function getCsvData(file) { // 読み込んだデータを1行ずつ格納する配列 var allData = []; // XMLHttpRequestの用意 var request = new XMLHttpRequest(); request.open("get", file, false); request.send(null); // 読み込んだCSVデータ var csvData = request.responseText; // CSVの全行を取得 var lines = csvData.split("\n"); for (var i = 0; i < lines.length; i++) { // 1行ごとの処理 var itemSet = lines[i].split(","); var itemData = { id: itemSet[0], img: itemSet[1], title: itemSet[2], titleKana: itemSet[3], description: itemSet[4] }; allData.push(itemData); } return allData; } var list_100sama = getCsvData('./csv/100sama.csv'); //結果画面を出す function showResult() { var id = Math.floor(Math.random() * 100) + 1; //テスト用。URLにidが指定されていたら即結果画面に移動。 if (location.search != "") { var id = Number((location.search).split("?id=").join("")); } //テスト用ここまで var result_info = list_100sama[id - 1]; var result_title = result_info.title; var result_titleKana = result_info.titleKana; var result_description = result_info.description; $("#result_head").text(result_title); $("#result_thumb_img").attr("src", "img/result_thumb" + ("00" + id).slice(-3) + ".jpg"); $("#result_titleKana").text(result_titleKana); $("#result_title").text(result_title); $("#result_description").text(result_description); $("#result_more_link").attr("href", "http://www.100sama.tochigi.jp/100sama/page.php?id=" + id); $("#result_share_fb").attr("href", "https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Ftochimarukun.jp%2Fspecial_contents%2F%3Fid%3D"+id); $("#result_share_tw").attr("href", "https://twitter.com/intent/tweet?text=%E3%80%90%E3%81%A8%E3%81%A1%E3%81%BE%E3%82%8B%E3%81%8F%E3%82%93SP%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%80%91&hashtags=%E3%81%A8%E3%81%A1%E3%81%BE%E3%82%8B%E3%81%8F%E3%82%93&url=https%3A%2F%2Ftochimarukun.jp%2Fspecial_contents%2F%3Fid%3D"+id); $("#result_share_line").attr("href", "https://social-plugins.line.me/lineit/share?url=https%3A%2F%2Ftochimarukun.jp%2Fspecial_contents%2F%3Fid%3D"+id); } //テスト用。URLにidが指定されていたら即結果画面に移動。 if (location.search != "") { showResult(); $("#main").css("transform", "translateX(-750px)"); } //テスト用ここまで //もう一回遊ぶ時の初期化。 $("#result_replay").on("click", function () { init(); //タイトル画面に戻る $("#main").css("transform", "translateX(0)"); //進行バーのリセット progressBar_ctx.clearRect(0, 0, canvas_progressBar.width, canvas_progressBar.height); $("#canvas_progressBar").css("opacity", "1"); $("#canvas_progressBar").css("transform", "translateY(360px)"); $("#canvas_progressBar").delay(500).queue(function (next) { initGame(); next(); }); }); initGame(); history.replaceState("", "", "/special_contents/"); });