エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

OpenGL

LuaとGLUTをShared Libraryでつなげてみる

わけあって、Lua再起動中。 おさらい 前回の様子。もう2年も経ってる…。 LuaとGLUTをつなげてみる - エンジニアのソフトウェア的愛情 LuaとGLUTをつなげてみる、のその後 - エンジニアのソフトウェア的愛情 LuaとGLUTをつなげてみる、のその後のその後 - エ…

LuaとGLUTをつなげてみる、のその後のその後

地味に地道に続けています。 GitHub - mattsan/LuaGLUT: Lua for GLUT (OpenGL) 実行とその結果。 ./lua_glut sample2.lua sample2.luaは600行足らずのスクリプトなんですが、デバッグにやたら苦労しました。以前(C++で)書いたものの焼き直しなので、書き…

LuaとGLUTをつなげてみる、のその後

とりあず、GitHubにアップしてみたり。 既存のLuaに手を加えるかわりに、自前でエントリを書いています。GitHub - mattsan/LuaGLUT: Lua for GLUT (OpenGL) makeでコンパイルできたら、次のようにしてサンプルを動かしてみてください。Ctrl+Cで終了します。 …

LuaとGLUTをつなげてみる

以前C++で書いたコードをLuaを使って実現させてみた。学習中ということもありかなり力わざでどうにかしています。 まず、GLUTをLuaから扱えるようするコードを書きます。 今回はこころみということで、イベントは表示とキー入力とタイマだけ、表示できるのは…

HaskellでOpenGL(再放送)

どう書く?orgに投稿したものにちょっと手を加えたものを、備忘録代わりにこちらにも投稿。 「event handlers」以下が、OpenGL/GLUTを使って時間経過とともに状況(表示)が変わるものを表示するプログラムを書くときのテンプレートになると思います。draw関数…

わかりやすいコードPart2・その3

いよいよもってわかりやすいコードからかけ離れてしまった感があるものの。 当り判定追加。相変わらずスコアを表示できず。代わりにコンソールにだだ流し。 かなりに雑なのは、わたしのHaskellスキルの限界か。でも、これだけのことを200行余りで書けてしま…

わかりやすいコードPart2・その2

エイリアン登場。まだ当り判定がありません。 一度作ったものの書き直しだからというのもあるのですが、思いのほか作業が早い。言語の違いにもっと手こずると思っていただけに、少し予想外でした。「わかりやすいコード」を意識したことで、より抽象的なレベ…

わかりやすいコードPart2

もう、コードがわかりやすいかどうかはどうでもよくなっている節がありますが。 こんどはHaskellで挑戦。 まずは、ウィンドウ上をなにかが動くところまで。 ghc --make moreComprehensible.hs ってな感じでコンパイルしてください。以下、コード。

わかりやすいコード・その6

コードがブログに書くには長くなりすぎてしまったのでここにアップロード。 一応「わかりやすさ」というのに気をつけて書いてみたものの、書くうちに「わかりやすさ」がわからなくなってきます。 for(std::vector<Bullet>::iterator i = bullets_.begin(); i != bull</bullet>…

わかりやすいコード・その5

エイリアンが攻撃してくるようになりました エイリアンの弾にあったたら即終了 プログラムを実現する、という目的の他に、タイトルにもしている「わかりやすいコード」が実現できているか、考えながら進行中。個人的にはBounds(0, 0, width, height).include…

わかりやすいコード・その4

エイリアンを倒せるようになりました スコアがつきました 表示をダブルバッファリングに替えたのでいくぶん綺麗になった気分 行数かかる書き方とはいえ、500行を越えてしまった まだグローバル変数がおおいなぁ、マジックナンバーも 以下、コード。

わかりやすいコード・その3

エイリアン登場。課題もどんどん登場。 グローバル変数が増えている マジックナンバーもいっぱい エイリアンの登場パターンがただのランダム エイリアンを倒せない エイリアンが減らないので画面上に溢れる 他、スコアがでないとか、エイリアンが弾を撃って…

わかりやすいコード・その2

エントリのタイトルはIBM developerWorks : ご指定のページは見つかりませんでしたから。ここで紹介されているゲームを目標にちまちまやっているところです。ここまで来ました。カーソルキーで上下左右に動いてスペースキーでファイア! 上下に動くのは反則っ…

わかりやすいコード

近く、グラフィックを使ったプログラムを書くつもりなので、それに先立ってサンプルを書いてみる。後ほどHaskellで再挑戦予定。 実は。カテゴリはOpenGLでなくて、GLUTが正しそうだけど、大目に見てください。わたしが使っている環境はMac OS Xなので、Linux…

ゲームになった…か?

amazon:入門Haskellを参考に、判定を追加してみたものの。スコア計算をどうしたものか。困った。スマートな方法が思いついていません。以下、コード。

ゲーム画面を作る

2日ほどこねくり回してようやくゲーム画面に相当するものができた。乱数の扱いが、最初いまひとつピンとこなかったのだけれど、ようやく把握…できたと思う。 以下、コード。

位置を記憶させる

昨日は再表示すると画像が消えてしまっていたけれど、IORefを使ってポイントを覚えさせておいて、再表示のときに全てのポイントを再描画させることに成功。細かいところがいろいろ変わっているけれど気にせずに。 import Graphics.UI.GLUT import Control.Ex…

半端にOpenGLに手を出す

MonadiusがOpenGLでグラフィックを作っているのを見て、amazon:入門HaskellのさめがめをOpenGLで作り直してみようかと、中途半端にいろいろ手を出してみる。クリックしたところに八角形を表示するのができた。ウィンドウが再表示されると表示が消えてしまい…