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

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

正しいと思っているからこその見落とし

drive.google.com

2段以上の空欄ができたときの落とす処理がうまく行かないバグを直しました。
うまく行かない理由は些細な見落としだった…

直したら直したで、
今度は落下の途中で消えるようになってるなぁ…

うーん、どうしよ…

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

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

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

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

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

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

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

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