Newer
Older
2024-Ikarashi / game.js
// 地図を作成し、表示する位置を設定
var map = L.map('mymap').setView([38.891, 139.821], 16);

// 国土地理院のタイルレイヤーを追加
L.tileLayer('http://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png', {
    attribution: '<a href="http://maps.gsi.go.jp/development/ichiran.html">国土地理院</a>'
}).addTo(map);

// カスタムアイコンを定義
var customIcon = L.icon({
    iconUrl: 'q.png', // カスタムアイコン画像のパスを指定
    iconSize: [20, 30], // アイコンのサイズ
    iconAnchor: [10, 30] // アイコンの基準位置(底部中央)
});

// 落とし物マーカーのデータ
var items = [
    {
        lat: 38.891,
        lng: 139.821,
  name:"落とし物1",
        hint: "自動販売機の数",
        img: "1.png", // 写真のファイル名
        password: "3", // 合言葉
        comment: "「た」を拾った。"
    },
    {
        lat: 38.892,
        lng: 139.820,
       name:"落とし物2",
        hint: "206教室、207教室の間にある共同研究室のアルファベット",
        img: "2.png", // 写真のファイル名
        password: "E", // 合言葉
        comment: "「ん」を拾った。"
    },
    {
        lat: 38.890,
        lng: 139.822,
       
        hint: "今まで拾ってきた落とし物1,2を合体させよう。",
       
        password: "たん", // 合言葉
        comment: "「た」と「ん」を合体させたら「い」が出てきた。あの頃落とした単位を拾った!"
    }
];

// マーカーを地図に追加
items.forEach(function(item) {
    var popupContent = `
        <div class="popup-content">
            <img src="${item.img}" alt="${item.name}">
            <p><b>${item.name}</b></p>
            <p>ヒント: ${item.hint}</p>
            <input type="text" id="password-${item.name}" placeholder="合言葉を入力">
            <button onclick="checkPassword('${item.name}', '${item.password}', '${item.comment}')">送信</button>
            <p id="comment-${item.name}" style="display: none; color: green; margin-top: 10px;"></p>
        </div>
    `;

    var marker = L.marker([item.lat, item.lng], { icon: customIcon }).addTo(map);
    marker.bindPopup(popupContent);
});

// 合言葉をチェックする関数
function checkPassword(name, correctPassword, commentText) {
    var input = document.getElementById(`password-${name}`).value;
    var comment = document.getElementById(`comment-${name}`);

    if (input === correctPassword) {
        comment.style.display = "block";
        comment.style.color = "green";
        comment.textContent = commentText; // マーカーごとのコメントを表示
    } else {
        comment.style.display = "block";
        comment.style.color = "red";
        comment.textContent = "不正解!もう一度お試しください。";
    }
}