感想練習帳

色んな物の感想とか、勉強、プログラム関係の備忘録とか(感想は基本ネタバレあり)

【TBS】TBSを構成する主な要素

TBSを構成する主な要素

CellGrid

TBSのメインとなるオブジェクトで下記の2つのスクリプトが入っている。

  • CellGridスクリプト:ゲームの記録、各セル、ユニット、プレイヤーオブジェクト。ゲームの進行も管理している。ユニットやマスへのプレイヤーの操作やゲームの進行に関するイベントを管理する。
  • CustomUnitGeneratorスクリプト:ユニットをゲームにロードする

Player

このオブジェクトはPlayerスクリプトがアタッチされており、いくつでも配置できる。各プレイヤーはユニークな番号が必要。

なお、AIプレイヤーはPlay()メソッドを実装する必要がある。

Unit

ユニットに関する情報とメソッドが入っている。Playerに所属する必要がある(プレイヤー番号で識別)。

【TBS】TurnTurn Based Strategy Frameworkについて

Turn Based Strategy FrameworkはUnityのターン制シミュレーションのフレームワークでターン制SLGで必要になりそうな機能や雛形をそろえてあるアセット。 お仕着せの機能ではなく、たくさんコードを書いても良いからオリジナルの機能は作りたいが制作時間は短縮したいという人向け。 なかなかにカスタマイズ性の高い良いアセットだと思うのだがとにかくドキュメントが英語で敷居が高い上に、日本語情報がないので備忘録兼誰かのお役に立てればという感じで、機能の説明が出来たらと思う。 特徴としては

  • 高いカスタマイズ性
  • 手頃なお値段
  • 余計な物があまりないので把握しやすい(ボリュームが小さいとも言う)
  • 分かりやすい内容
  • 四角いマスもヘックスでもいける(カスタムすればそれ以外の形も)
  • いくつかの作例が入っていて参考にしやすい(逆にドキュメントは素っ気ない)

Linuxで連番にファイル名を付け替え

連番で付け替えたかったので調べたら書いてくれている人がいたがlsを使っていたのでワイルドカードで書き換え。 lsはファイルネームの順番じゃないらしく、それは都合が悪く回避するためにはsortを入れる必要があり、面倒だったので。

i=1 ; for file in *jpg ; do mv $file foo$(printf %03d $i).jpg && i=$(expr $i + 1) ; done

&&は命令を続けて実行。exprでインクリメント。printfで0埋め3桁にしてある。 ワンライナー楽ちん。

Linux環境でPythonにコマンドライン引数をパイプラインで渡す

パイプラインで引数渡せると複数のファイルを処理したりするときにpython側で無駄にコード書かなくてもいいなあと思って調べたらやっぱりありました。xargsというのを使います。

echo arg1 | xargs python foo.py

追記: 上記は複数ファイルがあったときに連続で流し込めないみたいなので、以下のコマンドで対応。 for file in *txt ; do python foo.py $file ; done

C101PAのLinuxの環境構築

ChromebookのC101PAを買ってCrostiniをオンにしてLinux環境を入れてみた。 癖はすごく強いが、ちょこっとしたことをLinux環境で処理するにはいい感じ。 Linux初心者なので、設定のところで環境削除するだけで何もなかったようにやり直せてしまうのは本当に便利。 でも、何をどう入れてたか忘れそうなので備忘録的に書いておく。

apt-getで入れたもの

  • hugs。正月休みにHaskellを勉強したくて。すごいHaskell本とかプログラミングHaskellとかは買ってある。
  • opencv-python。ちょっとした用途で画像処理をしたかったので。python3版はまともなarm版がなく自分でコンパイルしないとだめだったのでpython2版で我慢。
  • manとtree。入門講座を見て、やってたらこれらの定番コマンドが入ってなかったので。
  • nkf。後述の入門UNIXシェルプログラミングのダウンロードしたコードをutfに変換するのに入れた。

その他

  • 入門UNIXシェルプログラミングのサンプルコードはsjis版をダウンロードしてきてutfに変換した。eucとかsjisでは文字化けしたので。

あと、C101PAで日本語表示するにはフォントを入れないといけない書いてる方がおられたけど、割ときれいなフォントがデフォルトで出ていた。日本語入力システムのMOZCに関しては何故か立ち上がらなかったので2度めの環境構築では入れなかった。

【Corgi Engine】CharacterクラスのPublic Method

メソッド

Disable ( )

キャラクターを無効状態に。入力に反応しなくなり、動かなくなる。

Face ( FacingDirections facingDirection )

強制的にキャラの方向を変える

Flip ( )

キャラと依存関係にある物を左右反転する。要はキャラと認識されるセットの方向を変える。

Freeze ( )

キャラクターを凍結状態にする。

RecalculateRays ( )

レイを再計算する。キャラのサイズが変わった時などに有用。

Reset ( )

死んだ時に呼ぶ。各アビリティのResetを呼ぶ。各種パラメータが初期化される。

RespawnAt ( Transform spawnPoint, FacingDirections facingDirection )

指定した場所、方向でリスポーンさせる。

SetPlayerID ( string newPlayerID )

プレイヤーIDを設定する。

UnFreeze ( )

凍結状態の解除。