書き物

技術とか作った物の話とか愚痴文句感想など

Sizeクラス

Sizeクラスということで、プロパティのwidth、heightを持つクラスを作っていたのですが、機能はただの構造体でした。これにwidthUnit、heightUnitという単位設定用プロパティを持たせておけば、何かしら意味をもったクラスになるんじゃないかしら。


たとえば、マップスクロールのクラス中にはscreenWidthやscreenHeightみたいなプロパティがあって、これはマップを表示する画面サイズをチップ単位で指定します。16×12と指定すれば、画面の横サイズはチップ16個分、縦サイズはチップ12個分みたいになります。画面のサイズをピクセル単位で取得したい場合、チップサイズを25×25(ピクセル単位)の場合は横を16×25、縦を12×25で取得すると。別にこれでも良いですが、screenWidthとscreenHeightと単位(チップサイズ)は切り離されていて、ぱっと見screenWidthにピクセル単位の値を設定してしまいそうです。僕は。

Sizeクラスを使って、width=16、height=12、widthUnit=25、heightUnit=25としておけば、widthは25pxのチップ単位のプロパティなんだなと、単位が直感的に把握しやすいと思います。僕は。

ついでに上記「16×25」をするようなメソッドも実装しておけばいろいろ楽できそうです。


一概にサイズを単位とひっつけて管理するのが良いとも言い切れません。上記の例の場合、例えば途中でチップサイズを変更したい場合、その度Sizeクラスのインスタンスの単位プロパティもいじらなければなりません。時と場合によりけりですね...。なやましや。