「落ちてくるリンゴを切るゲーム」(Cut.pde)のバージョン4、p91からのCut4.pdeの剣の軌跡に関する記述を見てみます。

slashLevelという変数は、
float slashLevel = 0.0f;
として最初に定義されます。

「マウスボタンが押された」というイベントを検出したときに作動するmousePressed()で、マウス位置にリンゴがあると判定された時に、
slashLevel = 1.0f;
とセットされます。

その後にdraw()が実行されると、「// 剣の軌跡の描画」というコメント文以下のif文、
if(slashLevel > 0.01f){}
の{}内の記述が実行されます。

ここでslashLevelは、実行されるたびに10%ずつ割引されます(slashLevel *=0.9f;)。これに255倍することで、軌跡の透過度として利用し( int slashAlpha = int(255 * slashLevel);)、しだいに軌跡が薄くなっていくのを実現しています。

また、軌跡の座標に利用することで、しだいに軌跡の幅が狭くなっていくのを実現しています。

if文の{}内をイタズラしてみました。
if(slashLevel > 0.01f) {
slashLevel *= 0.9f;
int slashAlpha = int(128 * slashLevel)+127;
fill(255, slashAlpha);
triangle(mouseX - 40 * slashLevel, 0, mouseX + 150 * slashLevel, 0, mouseX - 30 * slashLevel, height + 100);
fill(255-slashAlpha, slashAlpha, slashAlpha, slashAlpha);
triangle(mouseX - 10 * slashLevel, 0, mouseX + 50 * slashLevel, 0, mouseX - 30 * slashLevel, height + 100);
}

ちょっとだけ軌跡が違ってますね。


こちらが元のバージョン。


《インデックス》

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