質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

708閲覧

HTML5とJSでゲームのレベルが選べるようにしたいです

kyapi

総合スコア5

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/06/05 02:01

編集2021/06/05 02:02

前提・実現したいこと

ボールを避けながらアイテムをゲットするゲームをjavaScriptで作っています。

そこでレベル1のボタンをクリックするとボールを5個
レベル2のボタンをクリックするとボールを10個

と設定されるようにしたいです。
ボタンを押したら、ページ遷移して、関数が実行される方法を教えていただきたいです

該当のソースコード

bodyの下から書いてます

HTML

1<body> 2<img src="haikei.png"class="div2"> 3 <h1 class="title">アイテムキャッチ</h1> 4 <h3 class="ru-ru">ルール説明</h1> 5 <p class="ru-1">アイテムを500までゲットしたらクリア!<br>ボールに当たってHPが0になると<br>ゲームオーバー!</p> 6 <input type="button" class="btn-gradient-radius"onclick="location.href='sam.html'" value="レベル1"> 7 <button type="button" onclick="location.href='sam2.html'","boll_10();" class="btn-2" href="sam2.html">レベル2</button> 8</body> 9</html>

該当のソースコード

クリックしたら実行される関数です

javaScript

1//ボールの数を10個にする 2 function boll_10() { 3 boll=10; 4 hp=100; 5}

試したこと

レベル1はそのままの設定でゲームができるので上記のような書き方にしています。
しかし、レベル2のボタンを押したら、sam2.htmlに遷移して、boll=10;にする関数を呼び出しているのですがうまくいきません。
ボタンを押したら、ページ遷移して、関数が実行される方法を教えていただきたいです。
一応、ページ遷移はするのですが、レベル1と同じ画面です。
ボタンをクリックしたらボールの数を変えるだけなのでdocument.getElementById();はいらないと思ったのですが、アドバイスよろしくお願いいたします。

ボールの定義はグローバル変数で
var boll=5;
にしています。

補足情報(FW/ツールのバージョンなど)

monacaを使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下のように変更すれば関数実行後にそのページへ遷移するはずです。

<button type="button" onclick="boll_10();location.href='sam2.html'" class="btn-2">レベル2</button>

sam.htmlとsam2.htmlの2ページを用意されていますが、同じページでボールの数だけ変えて表示できればファイルが少なくて済むかもしれません。

inputタグとbuttonタグでボタンを作成されていますが、どちらかに統一したほうが自然に思います。

ボールの英語はballなのでそちらに合わせたほうが無難です。

投稿2021/06/05 18:39

gas.engine

総合スコア608

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyapi

2021/06/06 03:01

ありがとうございます!!!! ballに直しておきます、すみません。 なんとかページ遷移は完璧にできたのですが、ボールの数が変更されません。 同じページに遷移してボールを10個にする関数を指定してもボールの数が変更されないのはなぜでしょうか?? setup();で上書きされるのでしょうか?? その場合はどのように対処したら良いか教えていただきたいです!
gas.engine

2021/06/06 04:45

setup();が何の関数かは私にはわかりません。 >ボールの定義はグローバル変数で var boll=5; ページを遷移すると変数はキャンセルされているようです。 最初のページで変数を保存して、次のページで読み込むことは以下のページをご参考になさってください。 https://teratail.com/questions/55467 ただ、sam.html,sam2.htmlを2つに分けるのであれば、sam2.htmlに移動してからballの数を増やす関数を実行する(sam2.htmlにjsを記載する)のが簡単かもしれません。
kyapi

2021/06/06 08:59 編集

function setup();と書くと一回だけ実行される関数だと聞いたのでボールの乱数を生成したり色々初期設定を書いてます。説明不足で申し訳ございません。 sam2.htmlに直接jsを記載するとエラーが出てしまいました。 リンク先の情報を参考にして、sam2.htmlに直接jsを記載するとうまくいきました!これから微調整してみます。ありがとうございます!!
kyapi

2021/06/06 08:58

リンク先の情報を参考にして、sam2.htmlに直接jsを記載するとうまくいきました!これから微調整してみます。ありがとうございます!!
gas.engine

2021/06/06 09:50

エラーが出た場合、エラーメッセージを記入していただけるとありがたいです。 また、monacaに関することなので、そのタグを入れると回答を得られやすいです。
kyapi

2021/06/06 10:48

そうなのですね! 今後はエラーメッセージとタグをつけることを気をつけていきます! gas.engineさんのアドバイスと参考ページが適切でとても助かりました! なんとかエラーなく実行できました! ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問