グリッドでプレイされる多くのゲームでは、六角形がClearly Superior Choice™です。残念ながら、多くの無料ゲームアートサイトには、正方形のマップ用のシームレスなタイルセットしかありません。過去のプロジェクトで、これらのいくつかを使用して、手動で六角形に変換しました。
しかし、私は老後は怠け者になりました。小さなスクリプトでプロセスを簡単に自動化できるはずです。
しかし、私は老後は怠け者になりました。だから私はあなたにそれをアウトソーシングし、コードゴルフチャレンジ1としてそれを偽装しています。
入力
入力は、24ビットRGBカラーが可能な一般的な画像形式の正方形の画像です。画像データ自体の代わりに、入力としてファイル名を使用することもできます。
画像が正方形で、辺の長さが4の倍数であると仮定できます。
出力
出力は入力タイルですが、六角形に変換されます(画像自体は透明な領域のある正方形になります)。ファイルに保存したり、画面に表示したりできます。
繰り返しになりますが、一般的な画像形式ならどれでもかまいません。使用している形式が透明度をサポートしている場合、背景領域は透明でなければなりません。そうでない場合は、代役として色#FF00FF(恐ろしいフクシアの1つ)を使用できます。
方法
それではどうすればいいのでしょうか?私が2つ使用する方法は、画像を少し垂直に押しつぶしますが、全体的にはほとんどの場合にかなり良く見えます。この入力画像を使用して例を示します。
- 拡大縮小:画像を3:2の比率に拡大縮小します。画像は正方形になるため、幅75%、高さ50%に拡大縮小するだけです。入力例は200x200なので、この150x100の画像になります。
- タイル:スケーリングされた画像のコピーを2x2グリッドに配置します。
- 切り抜き:この2x2グリッドの任意の場所から適切なサイズの六角形を取得します。さて、タイリングを簡単にするために、この六角形は厳密には規則的ではありません。元のサイズの正方形(ここでは200x200)をトリミングした後、コーナーをトリミングします。切り取り線は、(おおよそ)左右の各辺の中央から上/下の端から4分の1の位置まで伸びる必要があります。
それがあなたの出力です!
以下は、タイル表示されたときの外観の例です(ここで拡大表示されています)。
これはコードゴルフであるため、バイト単位の最短コードが優先されます。標準的な抜け穴などが適用されます。