どもども!平社員の龍ちゃんです。今回は、Processingを使用してゲーム開発をする際に必要なベース知識をまとめました。まとめた内容としては、Processingですでに予約されている関数名である「setup/draw/keyPressed/mousePressed」の4つになります。ベース知識の記事を2つ用意することで簡単なゲームが作成できます。本当に初心者向けの内容となっていますので、あしからず。それでは始めていきます。
ソースは動かしてもらったほうがいいので、環境は手元にあると良いです。環境構築はこちらで紹介しています。もしオンラインでソースをいじりたい場合は、こちらから。
全体のサンプルはこちらです。
setup & draw
基本中の基本である「setup」と「draw」です。書き方としては以下になります。
この2つはどちらも描画に関係する処理を記述します。棲み分けとしては以下の図のようになります。基本的にsetupでは画面の設定を行い、drawでは変化する描画を行います。setup内で宣言した変数はsetup内のみのスコープで、draw内で宣言した変数はdraw内のみのスコープになります。
上のソースでは、setupでは画面の大きさ設定を行っていて、drawで円を描画しています。画面の大きさは変わらず、円はマウスを動かすたびに描画されています。これはソースを動かしてみるとわかりますのでコピー&ペーストして動かしてみてください。
画面の特徴について話しておきます。Processingで画面を作成した場合、左上が(0,0)で右下が画面端になります。人間社会のシステムはだいたい左下が(0,0)に作られていることが多いので、ここは混乱しないように注意です。
フレームレートという言葉を知っていますか?Processingではフレームレートを設定することができ、これは1秒間にdrawを何度実行するかという話になります。デフォルトの設定では60fpsなので、1秒間に60回drawが実行されます。
keyPressed
ここではキーボードの入力を受け付ける関数を紹介します。draw内でも受け付けることができるのですが、独立した関数として入力を受け付けることで複数回の入力を避けることができます。この当たりの癖はdraw内で書いてみることでわかるのでやってみてください。処理によってはdraw内で書いたほうが良い処理も存在するので適材適所というやつですね。
このソースでは、矢印キーの入力とエスケープキーの入力を受け付けています。この関数をコピー&ペーストして実行すると矢印キーの入力によってコンソールに文字列が表示されます。エスケープキーを押すと処理が終了されます。先程のsetup/drawと同様に変数のスコープはkeyPressed内限定ですので、回避する方法が必要です。
mousePressed
ここではマウスのボタン入力を受け付ける関数を紹介します。keyPressedと同様でdraw内でも受け付けることができます。適材適所というやつですので、その都度選択をお願いします。
上のソースでは、マウスのボタンの入力を受け付けています。その他にもマウスの動きを監視する関数名やマウスのボタンが離れた時を監視する関数名など、マウスの動きをトリガーにする関数名はProcessing内に多く存在しています。マウスの動きの監視に関しては、思いつく限りの処理はだいたい監視できるので、やりたいことを決めて調べてみると良いと思います。こちらのリファレンスで「mouse」と調べると出てきますので、調べてみてください。
おわりに
お疲れ様です。今回は、Processing で予約されている関数である4つを紹介しました。こちらの関数さえ抑えておけば、簡単なゲームは作成できます。次回は、簡単なゲーム作成に必要な図形の描画について紹介します。
次の記事はこちらです。
それでは~