2009-07-01から1ヶ月間の記事一覧

Segmentation faultとは

我がブログの検索キーワードで「Segmentation fault」が急上昇中である。 これが「DXRuby Segmentation fault」だったら困ってしまうところだが、ただの「Segmentation fault」なのでそもそもそれがRubyの話なのかどうかもわからない。 メモリ管理機能のある…

DXRuby1.0.7とまいが〜め0.0.3alpha

コードを少しいじって、Imageオブジェクトの編集機能を高速化してみた。 もとのロジックがダサダサだっただけなのだが、そもそもそのへんコンパイラで最適化できるレベルじゃないのかと。 あと、リクエストがあったのでフォントにイタリックとボールドの指定…

速度アップと色と

重いのは描画ではなく、Rubyの処理だ。DXRubyの描画は十分速い。 というのがいつもの俺の主張なので、DXRubyFrameworkに加速度などを設定できるよう機能追加して、それを使って動かしてみた。 複数の色を使うには別々のテクスチャが必要で、描画順も問題にな…

Webサイトリニューアル

DXRubyのロゴとか、るびまサンプルの絵とかを描いてくれていた水視さんが、Webサイトも作ってくれた。 http://dxruby.sourceforge.jp/ かっちょいい。 こんなん作るの、俺には一生無理だなあー。 こんだけのもの作っといて、自分の名前とかサイトのリンクと…

DXRubyFrameworkと花火

花火を高速に動かすために、作ろうと思っていた機能を追加した。 基本的に腰が重いため、こういう個人的需要が無ければ何もしない。 http://dxruby.sourceforge.jp/files/dxrubyfw001alpha2-mswin32-ruby18.zip サンプルとして花火をつけてあるが、とりあえ…

Window.drawTileの応用

これをやろうとしたらDXRuby1.0.5のWindow.drawTileがバグってて動かなかったのだ。 DXRuby1.0.6では動くようになっている。 MyGameサンプルのぷにゃりんのメニュー背景。 require 'dxruby' count = 0 image = Image.load("menu_tile.png") Window.loop do W…

DXRuby1.0.6リリース

してきた。 これでSegmentation faultで検索してくる人が減ればいいのだが、それは次のASRがリリースされて、みんながそれを使うようになってからの話だろうから、ずっと先だろう。 とりあえずこれでDXRuby本体に関してはすることはなくなった。 他のことに…

夏だ。

花火の音がするので、昔から何かといろいろある花火のプログラムを作ろうと思った。 ランダムで星を生成するなら簡単に作れるわけで、星の初期位置をきちんと計算してみようかと。 やったことないのでテキトーに考えて、ざくざくっと作ってみたのが以下。 し…

とりあえず動いた花火。

星の数が多いので非常に重い。多いといっても460ほどなのだが。 軽くする努力を、と言っても、計算自体はすでにほぼ最小だからして、たとえばz値の計算は不要だから省いたとしてもせいぜい1割か2割ぐらいしか変わらないだろう。数の多い点を描画するにはImag…

メソッドとローカル変数

DXRubyFrameworkではSpriteクラスのデータにアクセスするのにself.を付けないといけないことになっている。 なぜかというと、Rubyではx=メソッドなどの呼び出しがローカル変数への代入と解釈されてしまうからだ。 class Hoge def x=(obj) @x = obj end def x…

さらに縁取り

なんだかアルゴリズムが腐ってるっぽかったので、きちんと考え直した。 これでバッチリだろう。 これだと黒い縁取りの白い文字にしか対応できないから、別の色とかもできるようになればいいのだが、どうしたらいいのやら。 # DXRuby1.0.6サンプル require 'd…

別のやりかたで縁取り

なにをそんなにこだわっているのか。 いままではフォントの端1ピクセルを黒くしようとしていたが、今回はフォントの外側の透明部分1ピクセルを黒くしてみた。 これなら小さくても綺麗に見える。 アルゴリズムは試行錯誤で悲惨なものになってしまっているが。…

縁取り完成。

たかが縁取り、されど縁取り。 検索しても出てこないので試行錯誤してしまった。 これにて完成を宣言しよう。 白黒専用だが。 ついでにシステムにインストールされてないフォントを使う機能も追加。 そして使えないサンプルを置いておく。 # DXRuby1.0.6サン…

DXRubyとDXRubyFrameworkの関係

Rubyのような高級言語において、拡張ライブラリの役割は大きくわけて3つ。 これは前にも書いたが、 (a) できないことを可能にする。 (b) できるけど面倒なことを楽にする。 (c) できるけど遅いものを速くする。 DXRubyは基本(a)で、DXRubyFrameworkは(b)(c)…

DXRubyリファレンスマニュアル刷新計画

メソッド関連の説明がいい加減なので、詳細な解説を書いてやろうかと考えている。 ためしに書いてみたのが以下。 Window.draw 画像を描画します。 Window.draw( x, y, image[, z = 0]) ■解説 指定位置に指定の画像を描画します。 xとyは座標で、画面の左上が…

Segmentation fault対策

RubyオブジェクトをCのメモリに保持するのは、「そういった参照は推奨されません」とRubyのマニュアルにも書いてあるとおり、あまりよろしくない。 保守的GCがどのようにデータを検索し、マークをつけているのかなど、Ruby内部の動きを理解しないと正しく動…

フォントの縁取り

twitterでフォントの縁取りがしたいという話が出た。 俺は画像処理は得意ではないのだが、やりたいことができないのは寂しいことなので、ちょっといじってみた。 白背景に白いフォントを黒い縁取りで描いてみた画像。 縁取りの幅がアンチエイリアス込み1ピク…

DXRubyFramework0.0.1α

常識ハズレの圧倒的実行性能を叩き出すDXRubyFrameworkのプロトタイプができた。 http://dxruby.sourceforge.jp/files/dxrubyfw001alpha-mswin32-ruby18.zip 同梱のサンプルはるびまサンプルのDXRubyFramework対応版となっているので、目新しいことは無い。 …

Cによる高速化とRuby

DXRubyFrameworkはゲームの基本ロジックをCに完全に閉じ込めることで圧倒的な速度を叩き出そうという試みだ。 Spriteクラスを継承してクラスを作り、オブジェクト生成時の初期化で各種設定をして、あとは勝手に動く。 設定に応じて必要なときだけRubyのメソ…

再びBox2D

丸い形状も扱えるようになった。 Box2DのオブジェクトとDXRubyのImageをカプセル化してみた。 require 'rubygems' require 'dxruby' require 'box2d' include Box2d b = B2AABB.new b.minVertex.set(0.0, 0.0) # 世界の左上 b.maxVertex.set(640.0, 480.0) #…

さらにBox2D

まあ、画像をアップしてもよくわからないが。 マウスで物を掴んで動かせるようになった。 これでようやくよくあるサンプルレベルになってきたわけだ。 require 'rubygems' require 'dxruby' require 'box2d' include Box2d b = B2AABB.new b.minVertex.set(0…

DXRubyFramework少し進んだ

こんなのが動くところまでは来た。 機能が足りてない部分をRubyで書いてるせいで少し遅い。

2005年5月の日記

HDDを漁ってたらこんなのが出てきた。 2005年5月23日 ■なぜRubyでゲームプログラムなのか あんまり大した理由はないんだけど、ようするに俺自身がいま一番扱いやすい言語だから。 そりゃあ、例えばHSPみたいなゲーム用に開発された言語/環境を使うと…

box2Dをためす

Ruby-Box2D http://rubyforge.org/projects/ruby-box2d/ 2007年でなんか止まってたけど、つい最近別の人?がいじりはじめたようだ。 サンプルのプログラムを参考に、Box2Dで計算した結果を使ってDXRubyで描画してみた。 すなわち、別にDXRubyがサポートしな…

DXRuby1.0.5リリース

してきた。 一日中ヒマ人だからこそできることだな、と思った。

DXRuby1.0.5でいろいろと変えてみる

作ろうと思っていた機能で小さいものを、まとめて1.0.5に突っ込もうとしている。 色配列を[r, g, b]でも指定できるようにするとか、Image#boxを塗りつぶさない描画に変更するとか、Image.sliceをImage#sliceに移動するとか、そういう細かいところから、DXRub…

人柱募集中

DXRuby1.0.5betaを置いておく。 http://dxruby.sourceforge.jp/files/dxruby105beta-mswin32-ruby18.zip http://dxruby.sourceforge.jp/files/dxruby105beta-mswin32-ruby19.zip 新しい機能を試してみたい人で、変なふうにコケても怒らない人、不具合を見つ…

MyGame for DXRubyの可能性

タイトルバーに注目。 縮小したから読みづらいけど。 っていうか読めない。 ひっぱっておいて自分で言うのも情けないが「DXRuby Application」と出ている。 これはMyGame for DXRubyで実行した画面だ。 punyarace.rbのはじめのrequireと、Imageクラスの名前…

うごいたw

yharaさんからコメントを頂いたので、THE APPLE CATCHERのMyGame版を試す。 いくつかバグがあったから(DXRuby1.0.5の新機能にも)、それを修正してとりあえず動くように。 影付きフォントもばっちりだぜ。 元ソースの修正は、 ・最初のrequrieをmygameからm…

意外に普通に動くもんらしい。

MyGame作者のdan5yaさんからコメントを頂いて、MyGame公式に追加されたアクションゲームを試す。 修正点はTHE APPLE CATCHERと似たようなもんだった。 イベントを使っていないのでさっくり動いた。 screenオブジェクトを微妙にエミュレーションするクラス(h…