読者です 読者をやめる 読者になる 読者になる

うまか日記(仮)

とりあえずプログラミングを勉強しながら、その他のことにも随時書き込んでいこうと思うのである。

インベーダーゲーム その2

前回に続き、インベーダーゲームを作っていく。
 
 
前回終了時には敵の動きにバグが残っていたのだ。
1.一度だけ右に動いてから左に移動し始める
2.敵が右端まで移動しないで途中で左に反転する
 
1についてはいつの間にか直っていた。←
なぜでしょうね?不思議だけれども現象が再発しないので解明のしようがありません。
ので、これはよいこととする。
 
2についてだが、これは敵のスクリプトをクローンを作る処理をすることで処理しているところに原因がある。
 
敵は縦横に50匹いるが、これはそれぞれ、オリジナルになるスプライトを50回クローンすることで、
1つの命令で一気に動きを作れるように工夫がされている。
このとき、オリジナルにあたるスプライトは「隠す」という処理により、見かけでは消えているように見えるが、
透過されているだけで、プログラム中に存在しているのだ。
 
 

f:id:unkumk7284:20170204232210p:image

 
隠しているオリジナルのスプライトを表示させると、上図のようになる。
右にぽつんと1匹だけ離れているのが、オリジナルである。
こいつが、右端に到達した点で、反転指示がかかってしまうというわけですね。
なるほど。
 
変数を新たに作成し、初期数値を0、クローンされたタイミングで1にかえる。
こうした変数を利用することで、オリジナルとクローンを区別することで解決。
 
 
インベーダーとは侵略者、自機に向かって進行してくるものである。
ということで、反転のタイミングで自機に対して1マ進む処理を入れる。
 

f:id:unkumk7284:20170204232213p:image

 
 
すでに頭から湯気が出ているが、何とか意味が理解できた。
というわけで、今回は以下のところまで進んだ。
 
 
 
敵が下に向かってちょっと進むようになっただけじゃねーか!と思われるだろうが、そのとおりである。
 
しかし理由がある。
腰がいたいのである。
現在作業しているPCチェアには背もたれがない。
古くなって背もたれがボキンと折れてしまったチェアをケチッてそのまま使っているのである。
背もたれがないので猫背になってしまうのだが、長時間PCに向かっていると腰が痛くなってかなわない。
 
というような言い訳じみたことをぶつぶつ言いながら、
次回はPCチェアを探すところからはじめたいと思う。
 
毎回疲れたので終わりにしているが、今回も疲れたのでおわり。