Large Display Size Middle Display Size Small Display Size
印刷用 概要 キーワード 著者

原理で3DCG 第2回の補足説明


原理で3DCG 第2回 基本のプログラム

『原理で簡単3DCG』 第2回で、読者の方が疑問に思うであろう部分について補足説明を行います。

Contents

  1. 2つのキー入力
  2. JavaScriptって何?
  3. JavaとJavaScriptって何が違うの?
  4. 定義って何?

2つのキー入力


第2回の最初でおねえさんが言っていた、「2つのキー入力」がじっさい何なのかわからないと思いますので、ここで体験してもらおうと思います。

タッ…タタタタタ 文字入力

まずは、文字入力用のキー入力です。



黒い部分をクリックしてからキー入力(上下左右)してください。

★彡


キーを押し続けると、1回だけ入力されて、ちょっとためてからダーっと連射が始まります。

キーを1回だけ押すと、「かならず1回だけ」文字が入力されます。

1回だけ押したのに2、3文字続けて入力されてしまう…という不具合がありません。

そのため、文字入力向きのキー入力と言えます。プログラムはシンプルです。

『原理で3DCG』 第2回ではこの文字入力用のほうを説明しています。

タタタタタ! キーセンス

次は、ゲームで使えるキー入力です。



黒い部分をクリックしてからキー入力(上下左右)してください。

★ミ

こっちはゲーム向きのキー入力です。

キーを押すと、すぐに動き出します。

かりに、この入力方法で文字を入力しようとすると、1回だけボタンを押したのに2、3文字続けて入力されてしまうことがあります。文字入力向きではありません。

プログラムは少し複雑になります。

  1. タイマ割り込み( setInterval( "run()", 100 ); を実行するようにします。run()にキーごとの処理を書いておきます。
  2. キーダウンされたら、そのキーのフラグを立てます。タイマ割り込みではフラグを立てたキーの処理が1/10秒ごとに行われます。(キャラが動き始める)
  3. キーアップされたら、そのキーのフラグを外します。フラグが外れるのでタイマ割り込みでは処理されなくなります。(キャラが止まる)

キーのフラグは、keys = new Array(); のように作って、keys[ キー番号 ] = true; のようにしてそのキーのフラグを立てるようにします。外すときは false です。

詳しくは将来の別の回で説明するつもりです。

JavaScriptって何?

インターネットブラウザに搭載された、プログラミング言語です。

パソコンのインターネットブラウザはもちろん、携帯電話、スマートホン、タブレットなど、インターネットを見ることができる機械のインターネットブラウザには、たいていJavaScriptが搭載されています。

JavaScriptはホームページの裏で、いろいろ動いていろいろな操作を行ってくれます。

Google Mapで地図を動かせるとか、画像リンクにマウスを乗せると画像がハイライトするとか、はたまた、ホームページの上でゲームができるとか、そういう動きを見せたいときにJavaScriptは使われます。

JavaとJavaScriptって何が違うの?

JavaScriptは昔、LiveScriptと呼ばれていました。

LiveScriptを作ったのは「Netscape Navigator」というインターネットブラウザを開発していたNetscape社であり、Netscape社は当時Java言語の開発元であるサン・マイクロシステムズと業務提携していて、Java言語が大きな注目を浴びていたので、LiveScriptをJavaScriptと改名したそうです。

それだけであって、それ以外の関係は特にないようです。

何が違うというよりは、もともと比べるものではないということです。


▲昔は***と呼ばれていた。
若者と大人何が違うの?と荒れていた。

定義って何?


第2回の 「2. 講義 - プログラム」 の章のなかで、「このような関数の定義が行われたり…」 とさらりと言っていますが、この「定義」って、ちょっと難しいことばなので簡単に説明します。


簡単に言えば、「何々は何である」、「何々はこういうものだ」というものを「定義」だと思っていいでしょう。

ちなみに、「定義」を国語辞典で調べると、

ものごとの意味や内容を 他と区別できるように、言葉で明確に限定すること。

とあります。ちょっと難しいですね。

うーん、難しいですね


たとえば、関数を以下のように作成するとします。

function test() {

a = 123;

}

このように 関数の内容を書いたものを 関数定義 と言います。


変数については、変数定義 とはあまり言いません。

var a = 1;

これは 変数宣言 と言います。= 1がついているので「初期化をともなった変数宣言」などと言います。


参考:

技術評論社「ポケットリファレンス C言語標準文法」

この本のP502から2~3ページにわたって、「宣言」と「定義」の区別について説明があります。

これについて言及している書籍は少ないのではと思います。


思います。


ページ制作 homepage6047


ページの上端へ (もくじ開く)