2014-01-01から1年間の記事一覧
なんとなく続き。どこまで続くのか俺自身にもわからない。 ポーリングとイベント 現状では適当なタイミングでバッファをチェックして、空いた部分に生成したデータを詰め込む、という動作をさせている。これをポーリングと言うが、DXRubyで使う場合は1フレー…
なんとなく続き。 SoundTestをクラス化する 全体のコードはgistに置いておいた。今回はDirectSoundについては特に何もしてなくて、主にRubyに関する部分の修正となる。 これを全部説明するのは大変なので、ポイントに絞って順番に行ってみよう。
なんとなく続き。気が向いたので書いてみた。 再生カーソルと書き込みカーソル DirectSoundでポーリングないしイベント受信でバッファを書き換えようとした場合、まずバッファ内でDirectSoundが使おうとしている領域をチェックしなければならない。と言うの…
サウンドAPIは色々あるが、バッファをロックして書き込んで再生すれば音が出るという部分についてはどれも大きな違いは無い。WindowsVista以降ならWASAPIというオーディオAPIがあり、色んな機能があって優秀なのだが、このへんのOS上ではDirectSoundはWASAPI…
とりあえずRuby2.1.0用をWikiに置いた。他のバージョン用のものはまた後で。環境まだ整備できてないし。 今回は目立つ機能追加は無いが、こまごまとメソッドの追加と、制限の緩和がメイン。詳細はreadmeの更新履歴を見てもらうということで。 Window.loopが…
この記事はDXRuby Advent Calendar 2014の15日目です。14日目の記事はあおいたくさんの「ゲーム用GUIフレームワーク作った(作ったとは言ってない)」でした。どっちやねん。俺もDXRubyWSというウィンドウシステムを作ってはいるのだが、ゲーム用UIにも使える…
RubyにはProcクラスという組み込みのクラスがあるが、例えばるりまのProcのところを見ると ブロックをコンテキスト(ローカル変数のスコープやスタックフ レーム)とともにオブジェクト化した手続きオブジェクトです。とか書いてあってさっぱり意味がわからな…
ちょと前にDXRuby Advent Calendar 2014の記事を書いたのだが、やっぱり突貫工事で記事を書くとちょっと辛いものがある。1日ぐらい寝かしてからアップすればよかったか。と言っても指摘事項はほんとに厳しいところを突かれていて、例えばティアリング防止な…
この記事はDXRuby Advent Calendar 2014の5日目です。4日目の記事はしのかろさんのDXRuby機能リクエストでした。しのかろさんはDXRubyを使い込まれているようで鋭い指摘が多い。確かに使っていると「何でこれが無いのかな?」って感じる物なのだが、実は今ま…
IDEとかでリモートデバッグするためのgemなどはあって、それを使えば便利で簡単にリモートデバッグができるようなのだが。 それはそれとして、その手のものを自分で作ってみるという興味本位の行動があっても特に問題は無かろう。さて、Rubyにはset_trace_fu…
あと丁度1ヶ月でRuby2.2が出る。んじゃないかと思う。 そうするとDXRubyもそれに対応してビルドしてリリースしないといけないのだが、次はTypedData化しないといけなくなるのでそのままビルドするわけにもいかず。つっても警告はビルド時の話だと思うので問…
少し前の話になるのだけども、「U25 Ruby“ネ申”プログラミングコンテストin島根」というコンテストが名前のとおり島根で行われて、この最終審査会が10月11日にあった。 http://www.ruby2014.shimane-u.ac.jp/ この最終選考に残ったものの中に「MotionTool」…
前回、SDL_mixerのChannelの問題点を指摘し、その解決法の一部を実装した。残っている問題はChannelに空きが無かった場合の処理である。それを作る前に少し検討しておかないといけないことがある。 効果音の重要度と処理方式 SDL_mixerではMusicとChunkしか…
SDL2の周辺ライブラリのひとつ、SDL_mixerは各種フォーマットの音データを簡単に再生できる。その点では非常に扱いやすいのだが、再生した音の制御という点では非常に低レベルな機能しか持ち合わせていない。 sdl2rで実装したSDL_mixerの機能を扱いやすくラ…
ここ。 http://www.adventar.org/calendars/345 TwitterやGithubのアカウントでログインできるのでネタをお持ちの方もそうでない方も登録して何か書いてやってくださいな。 俺も何か面白いネタがあったら書く方向で考えていく感じ。
一応、sdl2rはSDL2そのままの形でRubyから使えるというのが売りなのだが、そもそもがC用のライブラリであるだけに、どうしてもそのままでは困ったちゃんな部分があって、Ruby向けに修正しているところがいくつかある。そのへんを書いておこうと思う。
現在、Ruby用SDL2バインダのsdl2rをなんとなく作ってみている。 基本的にはSDL2の関数やマクロをそのまま実装した感じで、そのままだと困っちゃう部分に関してはちょこっとだけ手を入れている。SDL2のラッパなのでMacでもLinuxでもビルドできれば動くはずで…
SDL2は日本語の情報があんまりなくて、SDL2そのままの使い勝手でRubyから使えますというライブラリを作っても、使える人は限られるのではないかと言うことで、基本的なことを書いておくことにした。とりあえずはおおまかな概念だけ。 関数の一覧および使い方…
ずいぶん前からメジャーなオブジェクト指向言語にラムダ式が導入されている。 俺がいる職場では未だに.net2.0なので使えないのだが、最近ちょこちょことヘルパーライブラリを作っていてSystem.Funcが使えたらなあーなどと思うことがよくある。職場の何人かに…
ビルドできて一通り動いているようなのでSourceForgeにアップしておいた。一番下にある。 https://sourceforge.jp/projects/dxruby/releases/ いつからか知らんけど見た目が変わっててわかりにくくなった。前からたいがいわかりにくかったけど。いずれはgem…
Windows用のRubyインストーラであるRubyInstallerでRuby2.1.3がリリースされた。リリースされてしまった。Ruby2.1.3自体が9月19日リリースなのでつい最近のことだろうと思う。 http://rubyinstaller.org/downloads/ RubyInstallerはRuby2.1系について、テス…
昨日、SDL2のRubyバインダを作ろうとして挫折したので、何が問題になったのかをメモ。 結論から言うと、SDL2のオブジェクトの寿命管理がC用の考え方で作られていて、Rubyで扱うためにRubyオブジェクト化した場合にGCによる解放処理との整合性が取れない。SDL…
2013年7月26日、大阪に行ったときに暇つぶしにDXRubyWSを検討していたときの文章が出てきたので置いておく。 これで開発されたものがgithubにおいてある。 https://github.com/mirichi/DXRubyWS 見てみたら最初のコミットは7月28日であった。文章を書く前に…
Cの入門などでは変数の説明で箱をイメージさせることがたびたびあるが、ポインタのところまで来ると箱の名前だとか場所だとか住所だとか言われていまいちピンとこない。ポインタが理解できない一因はこの「箱のイメージ」なのではないかと思う。 変数とは言…
なんとなく、mrubyのVMの基本的なところを書いておこうと思ったので。誰かの参考になれば。 大きな仕様的なところは、 ・32bit固定長のバイトコードを解釈して動作する。 ・レジスタをスタックに確保するタイプのレジスタマシンである。従って、スタックの任…
DXRuby1.5.11devをWikiに置いといた。 http://dxruby.sourceforge.jp/cgi-bin/hiki.cgi?%A5%D5%A5%A1%A5%A4%A5%EB%C3%D6%A4%AD%BE%ECInput::IMEの機能追加で、変換中の文字列や候補の一覧、数などを取得できるようにした。 通常、IMEの変換中文字列の描画はI…
mrubyカテゴリあったほうがいいかなーとか思うが、そんなに書くこともないからいらんかも。増えるようなら考える。 khashをどうにかして高速化できないかなーと細かい修正を入れてみて、ついでにHashが遅いらしいので書き込みを高速化してみたのでそれをネタ…
ocra による Ruby の EXE 化を見てもらえば終わる話なのだが。 ちょっと具体的にDXRubyで扱うリソースをまとめてみたのでそのレポートをば。 サンプル ここに置いておいた。解凍するとexeファイルが1個出てくる。これを実行するとサンプルゲームが動く。exe…
これは昔書いたかもしれんし、Twitterでつぶやいたかもしれんけど、DXRubyにプリセット画像を用意するという発想はずっと前から持っている。水視さんが手伝ってくれてた頃に思いついてたら迷わずお願いしてたはずなのだが、それが無いということはまあ、るび…
Rubyのコード内にCのコードを埋め込んで、その部分だけCコンパイラでコンパイルして拡張ライブラリ化し、呼び出す。これがRubyInlineの仕掛けである。Windowsでうまく動かないとか、Ocraでexe化するのがうまくいかないとか、色々あったが、最近のんは改善さ…