Programmer0での除算でエラーが出ていることから、0の場合は除算しなければいいとの安易な対応を実施。起動してみるとこんなことが分かった。Programmer最後はお約束のasdfを使うためのパッケージ化。Programmer弾幕の作成では一気に突っ走った。今回、目的としていたプログラムは以下のとおり。このプログラムを動かすための必要なファイルは過去のブログで作成しているため、遊んでみたい方は参照してくださいな。Programmer参考にしているサイトのショットパターンをそのまま利用するのが近道と判断し、それをLispで記述した。当初考えたとおり、ショットパターンの構造体を作りそれを配列にしてみた。ProgrammerStage12では、shipが敵や敵弾と衝突したときのプログラムを組みこんでみる。STAGEが切り替わるためには、デカキャラを倒す必要があり、普通の敵より激しい爆発として作成したのが以下のプログラム。ProgrammerStage11では、左Shiftキーを押すと敵と敵の弾が全て破壊され、爆発するような関数を組み込むことにする。Programmerまだ、衝突判定やオプションのボムを組み込んでいないが、一旦プログラムの全体像を見てみる。※OSが7から10に変わったことで、それまでemacs+slimeで動作の検証に使っていたCCLが起動しなくなった。Programmerそろそろサウンドのプログラムを組み込んでおかないと、後から追加するのは面倒っぽいので、ゲームで使うサウンドを組み込むこととする。Programmingで作ったプログラムをパッケージ化して流用。Programmer前回ではオプションを取ると自分の周りをバルーンが回るように設定したが、敵も弾をださないとつまらないので以下のプログラムを作ってみた。敵が発射する弾は1方向のみだが、自分の移動先をめがけて撃ってくる。取ると、自分の周りを回転するバルーンが1個ずつ増え、最大は2個まで。Programmerマップスクロール、スタート&ゲームオーバー画面、敵の出現と作ってきたのでプログラムが長くなり、読みにくくなったため、表示方法を変更することとした。※実はWeb系はまったくの苦手で、CSSって言葉を今回初めて知った。6-1>で作った,enemy-map-list.lispとmove-pattern.lispを読み込むテストプログラムを作ってみた。画面イメージのidを使用しているため、敵の画像が回転したりするとidが切り替わる仕様のため、かなりゴチャゴチャしたプログラムとなってしまった。Programmer敵のいないシューティングゲームなんて、「○○の入らないコーヒーみたい」(このフレーズを知っている人は相当なオジサン)なので、オリジナルのサイトをまねてやってみた。汚いコードになったが、動けばヨシと割り切る。Programmerちょっと補足。プログラムを見れば一目瞭然だけど、メニュー画面では、UP・DOWNキーを押すことでポインターが動き、メニューを指し示すことができる。Programmer3面切り替えのスクロールができたので、ここも一気にスタートメニューからゲームオーバーのメッセージまで作成。ここでの工夫は、画面のモードの切り替え方法。Programmerせっかく3面のマップを用意したのだから、stage1→stage2→stage3と切り替わっていくプログラムとする。Programmerさて、スクロールのテスト開始。スクロール用のプログラムを以下のように追加(青字)して、CL-USER>(common-abogadro)を実行すると、想定どおりにスクロールした。*map3*に変更するとそれぞれのマップが表示される。Programmer参考にさせていただいたサイトのリストを見たところ、キャラクタのidをリストにしていた。これを参考に、先のプログラムで読み込んだid番号と比べてみたらこんなmap用のプログラムができた。Programmermapchipが1つだとスクロールが簡単に実現できた。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。