`(kakko ,man)

Find a guide into tomorrow by taking lessons from the past

2015-01-01から1年間の記事一覧

cl-glut pre-study <page 11>

なんやかんやと試してみた結果、課題のレポートとして、以下のプログラムを提出させていただきます。 歩くというよりランニングしているようにも見えますが、一応完成ということで単位をくださいな。common lispですけど。 あ!、インターネット聴講生だから…

cl-glut pre-study <page 10>

歩く姿をsinとcosを使用して実験してみた。 正面だと分かりにくいので、移動を止めて斜め45度の角度から動きを確認してみる。 試してみると、腕や脚の移動範囲を25度位の角度にすると何となく歩いている感じに見えた。 角度だけでなくいろいろな数値をいじっ…

cl-glut pre-study <page 9>

歩いてはいないが、グラウンド上を円形に滑るように動くプログラムは意外と簡単にできる。 しかし、マウスボタンの真ん中を押すと止まるだけなはずなのに、右ボタンと同様に少しずつ動くのはなんなのさ? どこまちがえてんだろ? BoxMan sliding! ;; ;; Box…

cl-glut pre-study <page 8>

勝手に聴講生になったので、どのグループでもないから予備の課題を選び、取り合えずは表示のみ。 やっぱりこれでしょ。何だかわかるかな? BoxMan standing! ;; ;; BoxMan standing ;; -------------------------------------------------------------------…

cl-glut pre-study <page 7>

さて、ここも一気にいってみよう。レッスン21.光を当ててみる ;; ;; lesson21 <shading> ;; ----------------------------------------------------------------------------------------------- (defparameter *vertex* #(#(0.0 0.0 0.0) #(1.0 0.0 0.0) #(1.0 1.</shading>…

cl-glut pre-study <page 6>

なかなかいいサンプルがあったので、レッスン17を以下のように変えてみた http://blog.lowsnr.net/2013/04/14/using-opengl-with-common-lisp-and-macos-x/ ;; ;; lesson17 <animation> ;; ------------------------------------------------------------------------</animation>…

cl-glut pre-study <page 5>

レッスン13.2次元と3次元 y軸を中心に25°回転してみた。 ;; ;; lesson13 <2D & 3D> ;; ----------------------------------------------------------------------------------------------- ;; Set window class (defclass Window (glut:window) () (:…

cl-glut pre-study <page 4>

レッスン8.マウスボタンをクリックする ;; lesson1 <Open the window> ;; lesson2 <Fill in the blue> ;; lesson3 <Draw the lines> ;; lesson4 <Put the color lines> ;; lesson5 <Set polygon and several colors> ;; lesson6 <Reshape > ;; lesson7 <Window size and position> ;; lesson8 <mouse> ;; ----------------------------------…</mouse></window></reshape></set></put></draw></fill></open>

cl-glut pre-study <page 3>

さて3日目。 レッスン6.座標軸とビューポート ;; ;; lesson1 <Open the window> ;; lesson2 <Fill in the blue> ;; lesson3 <Draw the lines> ;; lesson4 <Put the color lines> ;; lesson5 <Set polygon and several colors> ;; lesson6 <Reshape > ;; ------------------------------------------------------------------------------------…</reshape></set></put></draw></fill></open>

cl-glut pre-study <page 2>

聴講2日目はここからスタート。レッスン3.線を引く lesson3.lisp ⇒ ;; ;; lesson1 <Open the window> ;; lesson2 <Fill in the blue> ;; lesson3 <Draw the lines> ;; ----------------------------------------------------------------------------------------------- ;; Set window class (defclass Windo</draw></fill></open>…

cl-glut pre-study <page 1>

これまでは、HSPで作られたシューティングゲーム2本をcommon-lispでリメイクしてみた。 lispbuilder-sdlは結構便利で、若干古さは否めないものの簡単なゲームを作るには十分だと感じた。 だけど、グラフィックスと言えばopenGLは外せない。 なので、どこま…

Lisp Game Programming 2 <Stage 14>

最後はお約束のasdfを使うためのパッケージ化。 package.lisp ⇒ ;;;; package.lisp (defpackage :game (:use :common-lisp :lispbuilder-sdl :sprite-sheets :map-list :enemy-map-list :audio-list :move-pattern :shot-data) (:nicknames :shooting) (:exp…

Lisp Game Programming 2 <Stage 13-3 Program>

弾幕の作成では一気に突っ走った。 今回、目的としていたプログラムは以下のとおり。 なお、このプログラムを動かすための必要なファイルは過去のブログで作成しているため、遊んでみたい方は参照してくださいな。ab-stage13.lisp⇒ ;;;; The Common-Abogadro…

Lisp Game Programming 2 <Stage 13-2 Barrage>

Stage1のボスキャラの弾幕(ショットパターン:6、7) Stage2のボスキャラの弾幕(ショットパターン:8、9、10) ※8と9は32方向に円形の弾幕を張り、10はshipに向かって10連発 ミドルクラスの敵の弾幕(ショットパターン:3、4) ※3は回転しながら4方向に5連…

Lisp Game Programming 2 <Stage 13-1 Structure>

参考にしているサイトのショットパターンをそのまま利用するのが近道と判断し、それをLispで記述した。 当初考えたとおり、ショットパターンの構造体を作りそれを配列にしてみた。 なお、HSPでは360度を256分割した数値で表現しているため、それを考慮して数…

Lisp Game Programming 2 <Stage 12>

Stage12では、shipが敵や敵弾と衝突したときのプログラムを組みこんでみる。 また、STAGEが切り替わるためには、デカキャラを倒す必要があり、普通の敵より激しい爆発として作成したのが以下のプログラム。 これで「ほぼ」完成!(弾幕を除き) ;; Step12 <Ship Hit P> ;;</ship>…

Lisp Game Programming 2 <Stage 11>

Stage11では、左Shiftキーを押すと敵と敵の弾が全て破壊され、爆発するような関数を組み込むことにする。以下のプログラムでは、bomb-managerクラスの作成と、shipが爆発中でなく且つボムが残っていて爆発中でない時に左Shiftキーを押すと、ボムが爆発してボ…

Lisp Game Programming 2 <Stage 10-2 Program>

まだ、衝突判定やオプションのボムを組み込んでいないが、一旦プログラムの全体像を見てみる。 ※OSが7から10に変わったことで、それまでemacs+slimeで動作の検証に使っていたCCLが起動しなくなった。 こんな感じ! Can't allocate required TLS indexes. Fir…

Lisp Game Programming 2 <Stage 10-1 Audio>

そろそろサウンドのプログラムを組み込んでおかないと、後から追加するのは面倒っぽいので、ゲームで使うサウンドを組み込むこととする。 Lisp Game Programmingで作ったプログラムをパッケージ化して流用。 audio-list.lisp⇒ (defpackage :audio-list (:use…

Lisp Game Programming 2 <Stage 9>

前回ではオプションを取ると自分の周りをバルーンが回るように設定したが、敵も弾をださないとつまらないので以下のプログラムを作ってみた。敵が発射する弾は1方向のみだが、自分の移動先をめがけて撃ってくる。 これを実現するために、Lispのsqrt関数を使…

Lisp Game Programming 2 <Stage 8>

マップ上に登場する敵以外のもので「オプション」と「ボム」のアイテムがあるが、どのように処理しているのかざっと見てみると、こんな感じの動作をしている オプション → 取ると、自分の周りを回転するバルーンが1個ずつ増え、最大は2個まで。 それ以上取…

Lisp Game Programming 2 <Stage 7>

マップスクロール、スタート&ゲームオーバー画面、敵の出現と作ってきたのでプログラムが長くなり、読みにくくなったため、表示方法を変更することとした。 ※実はWeb系はまったくの苦手で、CSSって言葉を今回初めて知った。 Stage7では、マップと敵の出現…

Lisp Game Programming 2<Stage 6-2>

<Stage 6-1>で作った,enemy-map-list.lispとmove-pattern.lispを読み込むテストプログラムを作ってみた。 画面イメージのidを使用しているため、敵の画像が回転したりするとidが切り替わる仕様のため、かなりゴチャゴチャしたプログラムとなってしまった。 たとえば、敵</stage>…

Lisp Game Programming 2 <Stage 6-1>

敵のいないシューティングゲームなんて、「○○の入らないコーヒーみたい」(このフレーズを知っている人は相当なオジサン)なので、オリジナルのサイトをまねてやってみた。かなり汚いコードになったが、動けばヨシと割り切る。 まずは、8つの敵の配置データ…

Lisp Game Programming 2 <Stage 5 Information>

ちょっと補足。 プログラムを見れば一目瞭然だけど、メニュー画面では、UP・DOWNキーを押すことでポインターが動き、メニューを指し示すことができる。 また、左のSHIFTキーを押すことで、スクリーンをFULLSCREENかWINDOWに切り替えることができ、STARTやEXI…

Lisp Game Programming 2 <Stage 5>

3面切り替えのスクロールができたので、ここも一気にスタートメニューからゲームオーバーのメッセージまで作成。 ここでの工夫は、画面のモードの切り替え方法。 https://github.com/jueqingsizhe66/lispbuilder-1/blob/master/lispbuilder-sdl/examples/pa…

Lisp Game Programming 2 <Stage 4>

せっかく3面のマップを用意したのだから、stage1→stage2→stage3と切り替わっていくプログラムとする。 まずは font ;; step1 <Fix Ship Position>;; ----------------------------------------------------------------------------------------------- ・・・・・・・・・・・</fix>…

Lisp Game Programming 2 <Stage 3>

さて、スクロールのテスト開始。 スクロール用のプログラムを以下のように追加(青字)して、CL-USER>(common-abogadro)を実行すると、想定どおりにスクロールした。 なお、赤字の*map1*を*map2*や *map3*に変更するとそれぞれのマップが表示される。 ab-sta…

Lisp Game Programming 2 <Stage 2>

参考にさせていただいたサイトのリストを見たところ、キャラクタのidをリストにしていた。 これを参考に、先のプログラムで読み込んだid番号と比べてみたらこんなmap用のプログラムができた。 3面のmapを以下に用意したけど、スクロールの仕方はこんな感じ…

Lisp Game Programming 2 <Stage 1>

mapchipが1つだとスクロールが簡単に実現できた。 http://tomekame0126.hatenablog.com/entry/2014/07/03/055411 でも、地図のようなものはmapchipの組み合わせでできているため、Lispではどのようにスクロールを実現(市販のゲームのようなイメージ)でき…