PCがリズムをとってじゃんけんできるようになりました。 前編 (Javaゲームプログラミング)

若かりし頃の夢をかなえるべく立ち上がった一人のおっさん。
これは、そんな漢の戦いのドラマである。
さて、前回、とにもかくにもPCとじゃんけんできるようにはなりました。
でもね、いきなり”じゃんけんポン! パー”とか出されても、心の準備というのがありますよね。
ということで、
じゃん”、
けん”、
ポン! グー
てな感じで、リズムよく手を出すようにしたいな、と。
前回はいきなりは無理、ってなことを言いましたけど、結論から言うと何とかなりました。
こちらの6個目のやつです。
まず、文字の出し方を変えました。
前まではLavelってもので文字を表示してましたが、今回からはGraphicsクラスのdrawStringメソッドでやる事にします。
画面をリズミカルに切り替えるために、BufferStrategyというのを使うことにしました。
それに伴って、Graphicsクラスも使用しています。
まあ、それはそれとして。
順番に行きましょう。
”何事かを、リズミカルに行う”というのは、Timerクラスで行います。
正確には、Timerクラスのインスタンスを作って、そのインスタンスにある、scheduleメソッドで間隔とか”やる事”を指定してやります。
さらに、その”やる事”というのをTimerTaskというクラスで指定するのですが、このクラス本体を書き換えるのはまずいので、こいつを継承したクラスを作って、それを使います。
いや~、わけのわからん言葉が続々と出てきますね。
このあたりの事をやっているのを順番に見ていきましょう。
28行目の
Timer t = new Timer();
という所で、Timerクラスのインスタンスであるtを作っています。
(インスタンスというのはクラスという設計図を基に作った、部品のようなもの、と前に書いていたと思います。)
次の29行目で
t.schedule(new LcTimerTask(),10,1000);
という所で、LcTimerTaskというクラスの名無しのインスタンスを作ってそれでもって”やる事”を指定し、作業開始の10 ms(ミリ秒です)後から1000 msごとに定期的に”やる事”を繰り返す、としています。
で、その”やる事”ってのは、41行目の
class LcTimerTask extends TimerTask {
以降でやってます。
まず、classってのは、”ここから先はクラスを定義しますよ”ということ。
その名前がLcTimerTaskです。
で、extendsというのは”この後のクラス(ここではTimerTaskです)を継承しますよ、ということ。
で、継承ってのは何かというと、あるクラスの完全そっくりさんにする、ということです。
これをすることで、TimerTaskと全く同じ機能を持つLcTimerTaskをいうクラスを作ります、ということになるわけです。
で、LcTimerTaskのやる事、というのがその中にあるrunメソッド(44行目)以降に書いてあります。
ぜい、ぜい、いやぁ、やはりかなりのボリュームです。
表示法を変えたことが全く説明できないまま、かなりのボリュームとなりました。
ということで、「前編」終了とします。
初の”前編・後編”構成となりました。
ますます、厳しさが増してきてます。
とにかく、頑張っていきましょう。
それでは、続きは次回の講釈で。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です