2015-09-01から1ヶ月間の記事一覧

パフォーマンスの測定など

SDL2を使った互換インターフェイスなどを構築してみたので、現時点の実装で動作するベンチマークとして、DXRubyサンプルのsprite_simple.rbを動かしてパフォーマンスを測定してみた。 60fpsで動作する最大のオブジェクト数を適当に手で調べた結果である。う…

sdl2rでゲームライブラリを作る(10)

Spriteクラスを作ろう。 DXRubyのクラス群の中では唯一、DirectXを直接叩かないのがSpriteである。描画に必要な情報をまとめ、DXRubyの描画機能を呼び出すことで間接的にDirectXにアクセスする。なので作ろうと思えば他のライブラリでも同様のものは作れるだ…

ブロックのはなし

RubyのProcやlambdaについての記事は検索するとよく出てくるが、ブロックはなぜかいまいちスポットライトが当たらない。あってもProcの説明のオマケみたいな感じが関の山。 この記事ではそんな不遇なブロックについて焦点を当ててみたい。 ブロックとは何か …

sdl2rでゲームライブラリを作る(9)

文字の描画ができないと色々不便なのでFontクラスを作ろう。 DXRubyはWindowsのAPIをベースに設計されているが、SDL_ttfはそれとは違うものなので、制約される条件がまったく違う。互換性を取るためにはそれなりの細工が必要であるが、そこまでして同じ動作…

sdl2rでゲームライブラリを作る(8)

ま、とりあえず最低限の入力はできてるので次、RenderTargetクラスを作ろう。SDL2に興味を持った理由は大きいのがGPUを使った高速描画だったのだが、RenderTargetテクスチャが扱えることも大きな要因であった。

sdl2rでゲームライブラリを作る(7)

昨日の記事で「オススメできない」と書いたばっかりだが、せっかくボタン用定数にオブジェクトが入っているのだから、これを利用して何か面白いことができないかを考えてみた。

sdl2rでゲームライブラリを作る(6)

入力がマウスの座標しかないので、もう少し入力できるようにしておこう。とりあえずマウスのボタンとキーボードのよく使うやつだけって感じで。 DXRubyではマウスやパッド、キーの入力は定数を定義してあって、それを使う。内部的にはそれぞれのボタンの状態…

sdl2rでゲームライブラリを作る(5)

いつまでもトウフでは寂しいので画像ファイルを読めるようにしよう。SDL2で画像ファイルを読み込むのは標準でできるが、標準だとBitmapしか扱えないのでSDL_Imageを使う。SDL_Imageはsdl2rでバインドしているので普通に使える。SDL_Imageの各関数はSDL::IMG…

sdl2rでゲームライブラリを作る(4)

ここらで方針を決めておこう。どういったものを作るつもりでいるのか。それが定まっていないと二転三転してしまうから。 まず、DXRuby完全互換は目指さない。もっといいアイデアがあればそのように作るし、それがよさげであればDXRubyのほうに取り込まれちゃ…

sdl2rでゲームライブラリを作る(3)

トウフが表示できるだけではさすがにしょんぼりなので、今回はImageクラスと、Imageを描画するWindow.drawメソッドを作ってみよう。 とりあえずコードを出そう。 module DXRuby C_WHITE = [255, 255, 255] class Image attr_reader :_surface, :_texture, :w…

sdl2rでゲームライブラリを作る(2)

前回は基本部分をとりあえず作ってみたところまでだった。今回はもうちょい進めたいところだが、その前に少しだけ周辺の話。 まず、Rubyのいいところに「既存のクラスを好きなように拡張できる」というのがある。モンキーパッチであり、オープンクラスである…

sdl2rでゲームライブラリを作る

Macを買ったらDXRubyが動かないので、いや、Wineで動くらしいんだけど、それをいうと話が終わってしまうので、とりあえず動かないことにしておいて(すみません)、RubyからSDL2を使うバインダsdl2rで遊んでみようという企画。 sdl2rはSDL2を使ってみたかった…

押されたキーの取得

司エンジンを作ってる土屋つかささんのブログで、DXRubyのキー入力に関する話が出ていたので便乗。 http://d.hatena.ne.jp/t_tutiya/20150912/1442022885キー入力に関する話は地味に厄介で、例えばテキスト入力をしたいのならアスキーコードを返すべきだし、…

DXRuby1.4.2リリース

1年半ぐらい経ってしまったが、DXRuby1.4.2をリリースした。今回よりリファレンスマニュアルを新しいのに差し替えて、Webでの参照はこちらになる。 http://mirichi.github.io/dxruby-doc/index.html chmは作り方がいまいちよくわからずうまく作れなかったの…