もどる TOP

線の補間

crystallization

 ずるずる中身をいじってしまったので、一応セルオートマトン部屋更新しました。その影響でヘルプが自動生成になってます。どうでもいい。っていうか何やってんだろ。

 ついでにブラシの精度を上げてみました。やり方が悪いみたいで、盤面の更新を止めてクリアしたところに描いてみるとまだ線がぶちぶち切れるんですけど、前よりは密度が高くできたみたいです。

 ブラシは、以前はフレームごとにカーソル (または指) が乗っていたセルしか変更してませんでした。ぱっと聞きそれでいいような気がするんですけど、実際にはそれだと線というより点々にしかなりませんでした。

 なので、点々の間を勝手に埋めて、線の形になるようにしてみました。いわゆる補間ですね。カーソルが動くたびに、最後にカーソルがあった位置と今カーソルがある位置との距離を求めて、最後にカーソルがあった位置から今カーソルがある位置に向かって、自動で点を打っていく感じです。

 ぶちぶち切れる原因がまだ分かってないのであれですが、今のところコードはこんな雰囲気です。

補間

 主にInput.mouseOrTouchHold()のifブロックの中ですが、最後にカーソルがあった位置が_lastPosで、今カーソルがある位置がposです。

 間を埋めるとき「5分割して5箇所埋める」とか固定にしてしまうと、一気にカーソルが動いた時にやはり点々になってしまうので、既定の距離AppConfig.DRAWING_INTERPOLATE_UNITずつ埋めさせてます。ベクトルの正規化ってホーミング弾を撃つ以外にも使えるんだ…… (ばか)。

 最後にカーソルがあった位置の記録は、タップまたはホールドした時に開始 enable = true して、指を上げたときに解除してます。当初、タップしたときだけ記録開始させてたら、タップした瞬間に超高速で指を動かしたときになぜかタップを認識してくれない (タップよりスワイプが優先された?) 問題が起きて、ホールドの方にも保険で入れました。あんまり綺麗じゃないです。

 どうでもいいんですけど、コードのごく一部が写ってる画面写真とかスクショを見て読むのが好きなので、私も上げてます。ほんとにクソどうでもいいですね。

サイドバーを表示する
ブログ
ShortCircuit
ShortCircuit
花火大会
天使
去る512時間前、キリウ君は折れてない千歳飴を渡してきて、ぼくが折るよう仕向けた。1024時間前、彼はこの世のものではないハッシュアルゴリズムでひとりブロックチェーンを始めていた。