SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

2022-06-24(Fri) テトラン登場

  と、いうわけで、試験的にテトランを実装してみた。

  本体を定義するTetranクラス、1本の腕を定義するTetranArmクラス、腕の1関節を定義するTetranBoneクラスを記述して、Stageクラスに登場タイミングを追記するだけ。なんだか、これまでの人生でコードを書いた中でも最高クラスの楽しさだったな。

  画像の説明

  ただ、既存のキャラクタ移動用の三角関数テーブルを流用したら、ちょっと動きがぎこちない。何せ360/64度キザみだからな。4倍にして360/256度にしないと、滑らかな動きは期待できないかも。まぁ、でも、アルゴリズムは完璧に記述できているので、別に焦りはない。

  それより、現状、残機のパターンを流用しているが、腕のパターンをなんとかしないといけない。角度毎に16か32パターンくらいは必要だろう。そうなると、いちいち手で描いていられない。もちろん、GIMPで作るのもよろしくない。

  1980年台のシューティングがモチーフなんだから、当時の回転、拡大、縮小機能で再現するべきだろう。つうか、今回、三角関数テーブルによってキャラクタの移動をプログラムしているうちに閃いたのだ。過去、回転機能の実装についての「三角関数が必要なのは最初だけ、後は加算だけで処理できる」というようなコメントの記憶のその意味が。早速、再現を試行錯誤してみることにしよう。

  にしても、Coffee Scriptでコードを書くのは楽しいのだが、トラディショナルな手法を再現するほどに、Z80アセンブラで書き直したくなる気分になる。いまさら、Z80で書く意味は見い出しようがないとはいえ……。