たぶん週刊「今週の進捗」

1週間に勉強したことや実装したことをネタに、週に1回(主に土日に)更新していく予定です。「多分」なので、臨時休刊があってもご海容ください。

出来てたと思ったんだけど

はい。お盆休みも終わりです。

条件を満たしたブロックが消える処理を書きました。

drive.google.com

さもちゃんと出来たように見せかけていますが、
2段以上のブロックが消えて落ちるとうまく行かないのでごまかしています…

ええ?ちゃんと作らなかったっけ?2段以上空きができたときの落下処理…

塗りつぶしの実装

ブロックが消去条件を満たしているか判定する処理を書いています。

再起を使わない実装にしたいので、スタックを使う処理で書いていて、
スタックからブロックをポップする処理書いた後にあっこれブロックのインデックスがわかんないとダメやんけとか、
以前DxLibで作ったときのソースコードを参考にしようと思って引っ張り出してみたら、
クソコードすぎて意味がわからなかったりとか。

時間が足らない

プロつく計画3

drive.google.com

クリックされたブロックのインデックスを検知して、
ブロックの色を変える処理を実装しました。

ここまで来るの長かったなぁ…(まるで完成したかのような台詞)

手を描いてみようとしたら、今まで描きなれていた顔や体と違って
どこから手を付けたらいいかわからなかったので、 こちらのサイトを参考に描いてみました。

www.asahi-net.or.jp

で、できたのがこちら f:id:ZeitungM:20190728231059p:plain

なるほど、こうして単純な図形で大体の形を捉えるのが上達の近道かなぁと思ったりした。

(それは「モデルの形を単純化せず精確に捉えて描写する」というデッサンとは真逆の方向なのだが)

ブロックにクリックを検知する機能をつける

表題の通り。

雑に「Unity(2D)でオブジェクトのクリックを検知する方法」をぐぐって
ヒットした以下の記事を参考にしていました。

qiita.com

カメラに Physics 2D Raycaster をアタッチして、
EventSystem を作成して、
ブロックに 2D Collier と EventTrigger をアタッチして、
呼び出す側のスクリプトに OnSortiePointClick() 関数を書いて、
EventTrigger の設定をして…と思ったのだけど、 呼び出す関数が No function になってて OnSortiePointClick() が現れない。

どういうこっちゃと思って調べてみた 。 teratail.com

あー左下のボックスにはスクリプト自身ではなくて、
スクリプトがアタッチされたオブジェクトを指定するのね…

そこんところを直して、再度やってみたらうまいこといきました。

で、そこまでやったらクリックされたブロックの情報を取得して表示させたいと思った。

nellab.seesaa.net

f:id:ZeitungM:20190722010343p:plain

できたー。

「またオブジェクトの階層構造を解剖したり、他スクリプトの参照したりしないといけないのかなぁ、
スパゲッティになるのは嫌だなぁ」と思ってたら案外かなり単純にできてすごいと思った。

静止画じゃわからないけど

f:id:ZeitungM:20190716000017p:plain

なんとかちゃんと落ちるようになりました。

こういうのはオブジェクトを動かしているうちに少しずつズレていったりするから
ちゃんと正規の場所にオブジェクトの位置をリセットする必要があるっぽいっすね…

それから、ブロックの色情報をデバッグ情報として出力したりしました。

そろそろプレイヤーが操作できるようにしておく必要があるかな…

解決の糸口

前回、ブロックが1段ずつ落ちるアニメーションを実装したので、
宙に浮いているブロックを一度に落とすようにしたのですが、
何故か消えるべきでない途中の段が消える…

ログにヒントになりそうな情報を出力してみた結果がこちら

f:id:ZeitungM:20190708001845p:plain

落下アニメが終わったブロックとブロックがない空間のデータを入れ替える処理の箇所で、
何故かy=6からswapをして、y=7の後y=1に戻って、y=5からy=8に飛んでいる…?

もしタイムラグでこうなっているのでなければ、
アニメーションの更新とデータの更新を同じループでしているのが原因かも?

SAIのペン設定

iradukai.com

ここを見ながら線画用のペン設定を試していました。

f:id:ZeitungM:20190630235529p:plain

いろいろ描いてみる。
割といい感じ。

用途に応じたペン設定が他にもいろいろあるみたいだし、都度試していきたい。