p200からの「ベルトコンベアのゲーム」(Atlas6.pde)について、プログラムを見てみます。今回は、かなり大きな変更のようなので、何回かに分けて見ていきます。

例によって、前回のバージョン(Atlas5.pde)との比較を行っていきますが、今回はUnitの記述。一回で理解できるとは思えないので、気づいたことを取りあえず羅列します。

・final int UNIT_TYPE_MAX = 5; // ユニットの種類数
4→5

・final int UNIT_LINK_NUM = 4; // ユニットがいくつ繋がったときに消えるか
新設

・final int UNIT_SIZE = 72; // ユニットの大きさ
40→72

・final int UNIT_WILDCARD_PER = 15; // 万能ユニットが出てくる確率(0〜100%)
新設

・final float UNIT_SPEED = 1.0f; // ユニットが動く速度
integer→float

・Unit mouseUnit = null; // マウス操作中のユニット
headUnitを廃止して新設

・int nextUnitFrames = 0; // 次のユニットを出現させるまでの残りフレーム数
新設

・// ユニットタイプ別の色
color[] unitColors = {
color(255), color(255, 255, 0), color(0, 255, 255), color(255, 0, 255), color(255, 0, 0)
};
新設

《ユニットクラス内の変更》
・ float prevX, prevY;
新設

・ float x, y;
float w, h;
integer→float

・ int linkTop, linkBottom, linkLeft, linkRight;
新設

・ // 繋がっている数を返す int getLinkCount()
新設

・ // マウス操作中? boolean isMouseDragging()
新設

・ // 進行(指定した寿命がつきたらfalseを返す)boolean step(float speed)
変更

・ // 停止している? boolean isStop()
新設

・ // 描画void draw()
当然変更

・ // つながりを描画void drawLinks()
新設

・ // ユニットが重なっているときは左のユニットを左にずらすvoid correctUnit(Unit unit)
新設

《メンバー関数外》
・// ユニット進行void stepUnits()
変更

・// ユニットを追加Unit addUnit(int y)
変更

・// ユニットが重なっているときは左のユニットを左にずらすvoid correctUnits(Unit unit)
新設

Atlas6


《インデックス》

◆◆◆参考文献「遊んで作るスマホゲームプログラミング for Android
◆◆◆公文生ならゲームで遊ぶな!ゲームを作れ!
◆◆◆公文式小林教室◆山形県東根市◆◆◆