こんにちは!
キッズプログラミング教室「イフキッズアカデミー」
あさみ先生です!
※クラス分け
【火1】・・・火曜日16:00〜17:30
【火2】・・・火曜日17:40〜19:10
【木1】・・・木曜日16:00〜17:30
【木2】・・・木曜日17:40〜19:10
【土】・・・土曜日10:00〜11:30
【日】・・・日曜日10:00〜11:30
今回は木曜後半のレッスンを報告します!
生徒はHくん(中3)、Mくん(中2)、Rくん(中2)、Rくん(小5)でした。
それでは、レポートスタートです。
まずはHくん。
Hくんは今回、前回に引き続きUnityの『射撃ゲーム』に取り組んでもらいました。
前回は自機の弾が敵にあったときの処理を作成中で、エラーが発生した状態で終了していたので、今回はエラーの原因調査と修正を行ってもらいました。
Hくんは、集中して黙々と原因の調査を行ってくれていましたが、なかなか原因が見つからないようでした。
あ「大丈夫?」
H「いや、わからないです。」
あ「どこがうまくいかないの?」
H「弾が敵それぞれに当たったときの反応がしてないです。」
あ「それは、そこの処理は通ってるの?」
まず、どこの処理まで通っているのかを確認してもらいました。
H「Start()の時点で呼ばれてませんでした。UIControllerも呼ばれてません。」
あ「どうやって、確認をした?」
H「Log()で確認しました。」
Hくんは、どの段階の処理がされていないのかを調べる際に、下記画像のようにLog()を使用して出力がされるかどうかを自分でしっかりと確認をしてくれていました!
1つ目のUIControllerの処理が呼ばれない原因は、UIControllerの処理を作成しただけで、その処理を必要とする部分に設定をし忘れていることでした。
また、2つ目のBulletControllerの処理については、Start()が呼ばれるようにしてもなかなかうまくいかず、時間がかかってしまいましたが、一緒に確認をしなおしたりし、BulletPrefabの「Is Trigger」にチェックが入っていないのが原因でした。
どちらもやったつもりになっていたミスだったので、Hくんも原因を見つけたときに「あー…。」という感じでした。
今回は、前回のエラー原因を修正し、自機の弾が敵に当たったときの処理を完成させ終了となりました。
次回は、敵の弾が自機に当たったときの終了条件を作成していきましょう。
細かい部分の漏れがないように、気をつけながら作成していきましょうね!
次はMくん。
Mくんは今回、Visual Studioで『ArrayList』の課題に取り組んでもらいました。
今回は、レッスン開始の時点でウトウトしており、
あ「Mくん!まだ始まったばっかりだよ!頑張れ!」
M「はい…。」
(しばらくして。)
あ「Mくん!」
と声を何度もかけるうちに、何とか眠気に勝って取り組み始めてくれました。
Mくんは黙々と取り組んでくれていたのですが、ArrayListから要素を削除する部分で躓いてしまいました。
コードを見てみると、下記画像のようにRemoveAt()を使用して、0から順番に削除するように記載をしていました。
あ「ArrayListとかListから削除するときって、何か注意が必要じゃなかったっけ?」
H「うーん…。」
あ「最初にindex0を削除した場合、次のデータのindexはどうなるんだっけ?」
H「あー!0。」
あ「そうだよね。indexの小さいものを削除すると、それ以降のindexはずれていくんだよね。今回みたいに0から削除していっちゃうと、もともと要素数が2で考えたときに、index0を削除するとindex1だったものはindex0になって、index1は存在しなくなるのにindex1を削除しようとして、それはないですよっていうエラーが出ちゃう。削除するときには、大きいほうから削除していくっていうのが注意点だったよね。」
H「はい。」
今回は、削除の方法について思い出してもらったところで、時間がきてしまい終了となりました。
次回は、ArrayListの削除の際の注意点の復習からもう一度行って、完成をさせていきましょう!
次はRくん(中2)。
Rくんは今回、Unityの『ピンボール』に取り組んでもらいました。
Rくんは、前回までオブジェクトの動かし方がまだいまいちわからないということで、Unityの使い方で復習を行っていました。
今回はまず、オブジェクトの動かし方の部分が大丈夫かの確認から入りました。
あ「オブジェクトの動かし方の復習をしてもらってたけど、何を使うのかとかは大丈夫そう?」
R「はい。」
とのことなので、何を使ってどこで設定するのかなど確認をすると、大丈夫そうでしたので、さっそくピンボールに取り組んでもらうことにしました。
前回ピンボールの課題を取り組んでから期間が空いたので、どういったものを作っていてどこまで出来ていたのかの確認をまず行ってもらいました。
Rくんは今回、集中力があまり続かず休憩を入れながらの確認になったので、少し時間がかかってしまいましたが、ピンボールの復習も終わり、続きだったボールを打ち上げるためのバネの伸び縮みの処理を考えてもらいました。
あ「まず、バネを縮めるのは何をしたとき?」
H「うーん…。」
あ「問題に書いてあるよ!スペースキーを押したときにだんだん縮むようにしたい。特定のキーが押されているときっていうのは何を使うんだっけ?スクラッチだと、もしブロックだね。」
H「if」
あ「うん、あってるよ!あるキーが押されているっていうのは前にどこかでやったよね?」
H「うん。」
と、if文の条件の「スペースキーが押されている」かどうかを知るメソッドは、自分でしっかりテキストを見返して記載をすることができていました!
ただ、if文の記載箇所が正しくなく、エラーが出てしまっていたので、Start()とUpdate()の中に、それぞれどういう時の処理をどちらに書くのかを説明して理解してもらい、修正をしたところで今回は時間がきてしまい終了となりました。
1機能全体で考えてしまうと、何からすればいいのかがわからないようなので、次回はまず、コメントで何をしなければいけないのかを先に書いてから、命令を書いていく形にしていきましょう!
最後はRくん(小5)。
Rくんは今回、前回に引き続きスクラッチの問題集に取り組んでもらいました。
前回はスクラッチ問題集の最後の課題『イベントの使い方(シューティングゲーム)』を作成中で、自機の移動、弾の発射、敵の出現まで出来ていたので、弾と敵の衝突から行ってもらいました。
あ「今回はまず、弾と敵がぶつかったときに敵が消えるようにしていこう。」
R「はい。」
Rくんは集中して取り組んでくれていて、しばらくして声をかけると、出来たとのことだったので確認をしてみると。
消えてはいるのですが、ぶつかったときにすぐ消えるようにはなっていませんでした。
あ「今、ぶつかってから時間がたたないと消えないから、ぶつかったときに消えるようにしてほしいんだけど、できそう?」
R「…?」
あ「じゃあ今、すぐに消えない原因がどこにあるかはわかる?」
R(◯秒待つブロックを指さし)
あ「そうだね。今、敵のクローンが作られた後にも数秒待っているから、クローンを削除するまでに時間がかかってるんだ。」
すぐに消えないという部分以外は出来ていたので、そこだけ修正をしてもらい、次の敵が画面左端まで到達してしまった場合にゲームオーバーにするというのにも取り組んでもらいました。
こちらも一人で一通り作成してくれていて、動きを見せてくれたのですが、一見うまくいっているように見えるのですが、実際に行っている動きが正しくありませんでした。
ゲームオーバーは『敵』が左端に到達したかどうかで判断するので、ゲームオーバーの処理は敵に設定するのですが、自機に設定をしていました。
また、自機で設定してうまくいっているような動きをさせるためにいろいろ試したようで、もしブロックの条件もおかしな状態になっていました。
今回は、そのことの確認をして、時間がきてしまったので終了となりました。
次回は、ゲームオーバーの処理の修正と撃墜数のカウントを作成していきましょう。
スクラッチ問題集の課題がもう少しで全て完成できそうですので、新しい課題にも入っていきましょう!
次回のレポートもお楽しみに!
無料体験授業実施中!
毎週火曜日 16:00~17:30、17:40~19:10
毎週木曜日 16:00~17:30、17:40~19:10
毎週土曜日 10:00~11:30、11:40~13:10
※日曜日も臨時で実施していることがあります
お気軽にお問い合わせください
お申し込み・お問い合わせは、こちら。
お電話でも受け付けております。
03-6806-6861
(平日10:00~18:00)
イフキッズLINE@お友だち募集中!
新着授業レポートの通知、無料説明会やイベントの案内など、
耳よりな情報を配信中です。
加えて、お友だち登録されている方には、
イベント参加費の割引、
入会の際の割引、プレゼントなどの特典も!