2013-11-01から1ヶ月間の記事一覧

DXRubyWSでのアプリ開発を考える

DXRubyWSの目標の一つとしてGUIアプリを簡単に作るというのがある。現状では、そのためのGUIまわりの基本的な実装ができている程度であり、ぶっちゃけGUIアプリが作りやすいとお世辞にも言える状態ではない。 具体例を示そう。 require 'dxruby' require_rel…

Chipmunkのエッセンス(8)

Wikiの野良ビルドChipmunkを最新にしておいた。これでブロック渡しのCollisionHandlerの引数が1個〜2個の場合にもきちんと動作するはずだ。 さて、今回は衝突ハンドラのもうちょっと凝った使い方の話である。■衝突ハンドラのオブジェクト渡し 衝突ハンドラは…

Chipmunkのエッセンス(7)

衝突に関する処理の基本としてデフォルト衝突ハンドラを紹介したが、デフォルトとわざわざ言うからにはデフォルトじゃない衝突ハンドラもある。今回は残りの衝突制御を一気に紹介する。■デフォルトじゃない衝突ハンドラ デフォルト衝突ハンドラはSpace#set_d…

Chipmunkのエッセンス(6)

物理演算ライブラリであるChipmunkの用途は、まあ、物理演算することなのだが、画面内に物体を出現させてそれをぶつけて眺めるだけではゲームにはならない。ゲームであれば、例えば衝突したときにダメージを受けて壊れるとか、アイテムを取得するだとか、何…

Chipmunkのエッセンス(5)

物理演算の本質は衝突の処理である。少し前に書いたように衝突タイミングと接触点を算出するのが難しいが、これは擬似的な算出方法でなんとかできる。しかしそれ以外にも厄介な問題が潜んでいる。今回はそのあたりを少し。■接触した状態 たとえば固定された…

DXRuby Advent Calendar 2013

ATNDというイベント支援サイトでDXRuby Advent Calendar 2013という企画が催されているのでご紹介。ちなみに主催は俺ではない。 http://atnd.org/events/45135アドベントカレンダーって何?って言うと、キリスト教圏でやってる何かで、ぐぐってWikipediaとか…

Chipmunkのエッセンス(4)

ChipmunkにはDemoプログラムが用意されていて、公式のダウンロードサイトで実行ファイルをダウンロードすることができる。http://chipmunk-physics.net/downloads.php このデモはアルファベットのA〜Sのキーで色々なものを動かすことができるのだが、Pを押す…

Chipmunkのエッセンス(3)

衝突判定が厄介な理由は前回述べたように、単位時間を経過した後では当たっていないが単位時間内には一時的に当たっていた、という状態の検出が非常に難しいところである。すり抜けを容認せず厳密に計算するのは生半可な計算では無理っぽい。直線運動する円…

Chipmunkのエッセンス(2)

Chipmunkは古典力学のうちニュートン力学の一部を計算するものである。それだけでもゲーム用にリアルタイム演算するのは骨が折れる。厄介なのは衝突判定、衝突タイミングの算出、衝突後の状態の計算の3つで、最後のは力学に忠実に計算すればいいが、前の2つ…

Chipmunkのエッセンス

最近いじってわかってきたことを個人的メモ。■Chipmunkとは オープンソースで開発されている2D物理演算ライブラリである。物体に重さや形状などの情報を設定すると、衝突した反応などをリアル(2Dだけど)に計算してくれる。この分野で最もメジャーなのはBox2D…