どうも!新入社員のタケです!
今日は朝のツイートの通り、マウスでドラッグして壁を作るツールを作っていました!
いずれはIt's My Houseに組み込む予定になります!
壁まで作れて家具も置けたら完璧に家を1から作れるので、とても自由度が上がりますね…!
まずはクリックしたところにうまく配置してくれない問題ですが、まずはガイドがないのが使いづらいと思いました。
グリッドでスナップはできているのですが、やっぱりどこに置かれるか表示してくれたほうが親切なので作りました。
壁を置くときは画面を押して、伸ばしたいところまで伸ばしてからから離すと設置されます。
なので、壁を設置中ではない時にマウスにくっついて常に表示するようにします。
設置中以外は黄色い棒がついてきますね!できました!
これで使いやすくはなった…のですが、対角線を使ってロの字に壁を配置できるボックスモードが欲しいと言われたので実装していきます。
今回はEnumという機能を使って実装していきます。
Enumとは何か?ということですが、すごく簡単に言うとドロップダウンメニューです。
LineとBoxを切り替えて、いままでの線を引く操作も可能にしながら箱を描くこともできるようにしておきます。
まあ正直モード1、モード2みたいに数字でやってもいいのですが、利点があります。
EnumはSwitch文と非常にシナジーが合います。
コードの見た目がとーってもわかりやすい!
このようにChangeModeの部分にMode.●●と入っていくのであとはcase Mode.●●で示していけば
あ、こっちがLineの処理なんだなとか、Boxの処理なんだなと分かりやすいです。
enumの良いところはエラーの原因が分かりやすいということもあります。
必ずEnumの中で指定した文字列…今回の場合だったらLineかBoxしか受け付けず、スペルが間違っていたらそんなものないです!というエラーが
ちゃんとでてきてくれます。
細かいところがエラーチェックが楽になるので助かりますね!
…
次の記事ではロの字の壁の作り方を詳しく紹介します。
考え方がすごい数学っぽかったので楽しかったのです…!
コメント
コメントを投稿