━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
レンタル掲示板とクイズ投稿サイトを開発した櫻井文人の
プログラムの考え方が身につくメルマガ『プログラムは考え方です』
───────────────────────────────────
メルマガ発行人
櫻井文人のプロフィール ⇒ http://www.bunzin.net/program/prof.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
こんにちは、メルマガ発行人の櫻井文人です。
最近、コッペリオン(COPPELION)という漫画にはまっています。
詳しくは編集後記で。
今回は「宇宙戦艦シリーズ(宇宙戦艦のゲームの作成)」に
ついての続きとなります。
前回までの宇宙戦艦シリーズでは、
ページに表示した宇宙戦艦の絵を動かすところまで行いました。
今回は、宇宙戦艦を動かすために準備したJavaScriptで作ったプログラム
の内容を説明しようと思います。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【おすすめ】今回も『初音ミク』特集です。
クリプトン VOCALOID2 キャラクター ボーカル シリーズ01 初音ミク HATSUNE MIKU
http://hb.afl.rakuten.co.jp/hgc/0c61938e.9ee9532e.0c61938f.d28ac561/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fakibakan%2f10007365%2f%3fscid%3daf_ich_link_mail&m=http%3a%2f%2fm.rakuten.co.jp%2fakibakan%2fi%2f10007365%2f
ハローキティといっしょ! フィギュア リオ エイコー プライズ 初音ミク KEI氏
http://hb.afl.rakuten.co.jp/hgc/0e4e992d.6b88d8df.0e4e992e.ee917549/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fhakata-smile%2f10010014%2f%3fscid%3daf_ich_link_mail&m=http%3a%2f%2fm.rakuten.co.jp%2fhakata-smile%2fi%2f10010014%2f
できる初音ミク&鏡音リン・レン
http://hb.afl.rakuten.co.jp/hgc/0c84838c.f5745ff8.0c84838d.9e70e911/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f5335382%2f%3fscid%3daf_ich_link_mail&m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f12728419%2f
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■ 宇宙戦艦を動かすJavaScript
───────────────────────────────────
今回は、宇宙戦艦を動かすために準備したJavaScriptで作ったプログラム
の内容を説明しようと思います。
なお、念のために、
実際にキーボードで宇宙戦艦を動かしてるページのURLを再掲しておきますね。
宇宙戦艦の絵をキーボード操作で動かすページ
⇒ http://www.bunzin.net/program/mailmaga/backnumber/20110720/
■ 移動のしくみ
宇宙戦艦の位置を覚えておくようにします。
キーボード操作で「WSAD」の各キーが押された時に、覚えておいた宇宙戦艦
の位置を修正して、画面の中の宇宙戦艦をその位置まで移動させます。
宇宙戦艦の位置は横軸(x)と縦軸(y)の座標で覚えて置くようにします。
横軸(x)は画面の一番左が0で、右にいくほど数値が増えていき、
縦軸(y)は画面の一番上が0で、下にいくほど数値が増えていきます。
■ battleship.jsの中身
battleship.jsの中身は以下のようになっています。
1行目:var MyBattleship = { 'x':10, 'y':10 }
2行目:
3行目:window.onload = function()
4行目:{
5行目: window.document.onkeydown = moveMyBattleship;
6行目: setPositionMyBattleship();
7行目:}
8行目:
9行目:function moveMyBattleship(evt)
10行目:{
11行目: if (evt)
12行目: {
13行目: var kc = evt.keyCode;
14行目: }
15行目: else
16行目: {
17行目: var kc = event.keyCode;
18行目: }
19行目:
20行目: if (kc == 87 && MyBattleship.y > 0) MyBattleship.y = MyBattleship.y - 1;
21行目: if (kc == 83 && MyBattleship.y < 30) MyBattleship.y = MyBattleship.y + 1;
22行目: if (kc == 65 && MyBattleship.x > 0) MyBattleship.x = MyBattleship.x - 1;
23行目: if (kc == 68 && MyBattleship.x < 30) MyBattleship.x = MyBattleship.x + 1;
24行目:
25行目: setPositionMyBattleship()
26行目:}
27行目
28行目function setPositionMyBattleship()
29行目{
30行目 document.getElementById("my_battleship").style.top = MyBattleship.y * 8;
31行目 document.getElementById("my_battleship").style.left = MyBattleship.x * 8;
32行目}
1行目は、宇宙戦艦の位置を覚えておくための
オブジェクト「MyBattleship」を宣言しています。
オブジェクトには横軸(x)と縦軸(y)の位置に
対応したプロパティ「x」と「y」を準備して、
それぞれを10で初期化しています。
2行目から7行目では、ウェブページが表示された時に
最初に実行するための関数を宣言し、そのまま登録しています。
この登録した関数はウェブページが表示された時に
最初に実行されるよになります。
5行目では、キーボードが押された時に実行するための
関数「moveMyBattleship」を登録しています。
※関数「moveMyBattleship」については、あとで説明します。
6行目では、関数「setPositionMyBattleship」を実行することで
宇宙戦艦の表示ををゲーム開始時の位置に移動しています。
※関数「setPositionMyBattleship」については、あとで説明します。
9行目から26行目は、関数「moveMyBattleship」を宣言しています。
この関数では、キーボード操作で「WSAD」の各キーのうち
どれかが押されたかによって横軸(x)と縦軸(y)の値を
増やしたり減らしたりしています。
そして、後述する関数「setPositionMyBattleship」によって
表示している宇宙戦艦の位置を移動します。
28行目から32行目は、
関数「setPositionMyBattleship」を宣言しています。
この関数では、宇宙戦艦を表示している位置を移動します。
横軸(x)と縦軸(y)の値を、画面の宇宙戦艦の位置として指定することで
移動をしています。
■ 次回のメルマガでは・・・
今回は、追加したJavaScriptのプログラムの説明はしましたが、
htmlとの連携については説明していませんので、
次回は、JavaScriptのプログラムとhtmlとの連携について
説明したいと思います。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■ 編集後記
───────────────────────────────────
私の大好きな漫画のうちの1つである、
コッペリオン(COPPELION)の11巻が新しく出たので、
さっそく入手して読んでみました。
さて、このコッペリオンですが、、
ネタバレしない程度に簡単に説明しますと、
お台場の原子力発電所のメルトダウンから20年後の廃墟と化した
東京に、ある特殊能力をもった女子高生達が生存者の救助に向かうと
ころから始まるお話です。
この、コッペリオンという漫画・・・
いろいろと思い入れがあるのですが、
その辺はブログに整理してみました。
【ブログ】新しく出たコッペリオン(COPPELION)の11巻をさっそく入手しました
⇒ http://ameblo.jp/bunzin-net/entry-10984000498.html
もし興味がありましたら、ブログのほうもぜひご覧ください。
最後までお読みいただき、ありがとうございました。
───────────────────────────────────
メルマガに関してのご意見・ご要望は、以下の受付フォームから
常時受け付けております。
ご意見・ご要望 受付フォーム
⇒ http://www.bunzin.net/program/mailmaga/demand/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【おすすめ】今回も『初音ミク』特集です。
クリプトン VOCALOID2 キャラクター ボーカル シリーズ01 初音ミク HATSUNE MIKU
http://hb.afl.rakuten.co.jp/hgc/0c61938e.9ee9532e.0c61938f.d28ac561/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fakibakan%2f10007365%2f%3fscid%3daf_ich_link_mail&m=http%3a%2f%2fm.rakuten.co.jp%2fakibakan%2fi%2f10007365%2f
ハローキティといっしょ! フィギュア リオ エイコー プライズ 初音ミク KEI氏
http://hb.afl.rakuten.co.jp/hgc/0e4e992d.6b88d8df.0e4e992e.ee917549/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fhakata-smile%2f10010014%2f%3fscid%3daf_ich_link_mail&m=http%3a%2f%2fm.rakuten.co.jp%2fhakata-smile%2fi%2f10010014%2f
できる初音ミク&鏡音リン・レン
http://hb.afl.rakuten.co.jp/hgc/0c84838c.f5745ff8.0c84838d.9e70e911/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f5335382%2f%3fscid%3daf_ich_link_mail&m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f12728419%2f
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●櫻井が開発したレンタル掲示板は
コチラ ⇒ http://www.bunzin.gr.jp/m_board/
画像のアップロードも可能なレンタル掲示板です。
無料ですのでお気軽にどうぞ。
●櫻井が開発したクイズ投稿サイトは
コチラ ⇒ http://www.bunzin.gr.jp/quiz/
あなたが考えたクイズを投稿することができます。
投稿されたクイズに回答することもできます。
無料ですのでお気軽にどうぞ。
●BUNZIN NET アプリ
コチラ ⇒ http://www.bunzin.net/app/
●プログラム用語辞典
コチラ ⇒ http://www.bunzin.net/program/dictionary/
●お手軽!VBScriptを使ってみよう
コチラ ⇒ http://www.bunzin.net/program/vbscript/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
メルマガ発行人 櫻井文人
メルマガ発行責任者情報は
コチラ ⇒ http://www.bunzin.net/program/mghsinfo.html
アドレス変更と登録解除はコチラ ⇒ http://www.mag2.com/m/0000293166.html
メルマガバックナンバーは
コチラ ⇒ http://www.bunzin.net/program/mailmaga/backnumber/
櫻井文人のプロフィール ⇒ http://www.bunzin.net/program/prof.html
ご意見・ご感想はコチラ ⇒ bunzin●bunzin.gr.jp
(メール送信の際は、●を@に置き換えてください。)
(櫻井が確実に読みますが、返信は保障できません。)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|