DXRuby

新機能追加の件

このあいだ、会社の帰りにふと思いついたので実装してみた。 RenderTarget#regenerate_proc= 現状ではRenderTargetはデバイスロスト問題を回避するために毎フレーム強制的にクリアしている。この制限があると、RenderTargetで画面を構成しようとした場合に描…

DXRuby1.5.17devリリース

とりあえずRuby2.1.0用をWikiに置いた。他のバージョン用のものはまた後で。環境まだ整備できてないし。 今回は目立つ機能追加は無いが、こまごまとメソッドの追加と、制限の緩和がメイン。詳細はreadmeの更新履歴を見てもらうということで。 Window.loopが…

DXRuby Advent Calendar 2014 : DXRubyの怪しげで不自然な挙動について語る

この記事はDXRuby Advent Calendar 2014の15日目です。14日目の記事はあおいたくさんの「ゲーム用GUIフレームワーク作った(作ったとは言ってない)」でした。どっちやねん。俺もDXRubyWSというウィンドウシステムを作ってはいるのだが、ゲーム用UIにも使える…

module Easing

ちょと前にDXRuby Advent Calendar 2014の記事を書いたのだが、やっぱり突貫工事で記事を書くとちょっと辛いものがある。1日ぐらい寝かしてからアップすればよかったか。と言っても指摘事項はほんとに厳しいところを突かれていて、例えばティアリング防止な…

DXRuby Advent Calendar 2014 : DXRuby機能リクエストにお答えする

この記事はDXRuby Advent Calendar 2014の5日目です。4日目の記事はしのかろさんのDXRuby機能リクエストでした。しのかろさんはDXRubyを使い込まれているようで鋭い指摘が多い。確かに使っていると「何でこれが無いのかな?」って感じる物なのだが、実は今ま…

Window.loopを複数置く

あと丁度1ヶ月でRuby2.2が出る。んじゃないかと思う。 そうするとDXRubyもそれに対応してビルドしてリリースしないといけないのだが、次はTypedData化しないといけなくなるのでそのままビルドするわけにもいかず。つっても警告はビルド時の話だと思うので問…

DXRuby Advent Carendar2014だそうで

ここ。 http://www.adventar.org/calendars/345 TwitterやGithubのアカウントでログインできるのでネタをお持ちの方もそうでない方も登録して何か書いてやってくださいな。 俺も何か面白いネタがあったら書く方向で考えていく感じ。

DXRuby1.4.1(Ruby2.1用)リリース

ビルドできて一通り動いているようなのでSourceForgeにアップしておいた。一番下にある。 https://sourceforge.jp/projects/dxruby/releases/ いつからか知らんけど見た目が変わっててわかりにくくなった。前からたいがいわかりにくかったけど。いずれはgem…

Ruby2.1.3が出たので今後を考える

Windows用のRubyインストーラであるRubyInstallerでRuby2.1.3がリリースされた。リリースされてしまった。Ruby2.1.3自体が9月19日リリースなのでつい最近のことだろうと思う。 http://rubyinstaller.org/downloads/ RubyInstallerはRuby2.1系について、テス…

DXRubyWS開発秘話

2013年7月26日、大阪に行ったときに暇つぶしにDXRubyWSを検討していたときの文章が出てきたので置いておく。 これで開発されたものがgithubにおいてある。 https://github.com/mirichi/DXRubyWS 見てみたら最初のコミットは7月28日であった。文章を書く前に…

DXRuby1.5.11devリリース

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…

プリセット画像というアイデア

これは昔書いたかもしれんし、Twitterでつぶやいたかもしれんけど、DXRubyにプリセット画像を用意するという発想はずっと前から持っている。水視さんが手伝ってくれてた頃に思いついてたら迷わずお願いしてたはずなのだが、それが無いということはまあ、るび…

Spriteの実装と設計判断

高尾さん(@takaokouji)から「Spriteはなぜインスタンス変数に値を持たないのか」という質問を受けた。その回答はシンプルに「遅いから」であった。 Spriteの描画時など、参照するパラメータは10を軽く超える。これらをすべてCのAPIでインスタンス変数から取…

DXRuby1.4.1リリース

1.4.0が2012年8月だったので随分久しぶりのリリースとなった。 開発版の1.5devを2013年5月に開始してから、いろいろと修正を入れているうちの、確定していない微妙な機能を省いたバージョンとなっている。ソースは1.5devと共通で、マクロでコードを削除した…

DTLの自作レンダラの実験

いいスクリーンショットがなかなか撮れない。のでgif動画にしてみた。 土屋つかささんのdxruby_text_layerを使って、独自レンダラを書いて、この間のmieki256さんのSTGサンプルのステージクリアの文字みたいな動きを(アルゴリズムパクって)作ってみた。それ…

BGアニメーションを考える

mieki256さんが大変なものを作っていたのでご紹介。 DXRubyでSTGサンプルを作成 爆発エフェクトは派手だわShaderを使った背景は派手だわすごいもんだ。デカいボスもおるし、途中の壁は斜めの見た目に合わせて丁寧な衝突判定してるし、音こそ無いものの、ここ…

ミニゲームキット

DXRubyはちょっとしたものを簡単に作れるライブラリであるからして、とりあえずrequire 'dxruby'してWindow.loop do endでガシガシとコードを書いていけば動くものが作れる。例えば、ちょっとしたコードでなんか作る。 require 'dxruby' class Enemy < Sprit…

OpenGL対応その2

DXRuby Advent Calendar 2013、26日目です。嘘です。25日目はDXRubyの開発環境に(将来的に)望む物でした。配布形式については初めの頃からの課題ではあって、どうにかできないかとRBatに暗号化を突っ込んでみたりしているのだが、そのやり方はrequireの動…

OpenGLテスト中

そもそもOpenGLがさっぱりわかってないのでどうにもならん感じである。 とりあえず、DXRubyのImageにconnect_glメソッドを追加して、OpenGLの描画先をImageオブジェクトにすることはできた。DXRuby1.5.8dev-test-mswin32-ruby20.zipとして地味に置いておいた…

おもちゃを作ってみようとしたが

SoundEffectに配列から音を生成する機能を追加したから、これを使っておもちゃ的なプログラムを作ろうと考えていた。 例えば正弦波を出力するブロックがあって、それを縦とか横とかに繋げて音を変化させるようなもの。縦に繋ぐと和音になって、横に繋ぐと周…

DXRuby1.5.8devリリース

ちょっと勢いで作っちゃった新機能を公開するために、これまでのバグ修正などを含めた1.5.8devをリリース。 http://dxruby.sourceforge.jp/cgi-bin/hiki.cgi?%A5%D5%A5%A1%A5%A4%A5%EB%C3%D6%A4%AD%BE%EC細かいものから大きなものまでいくつかのバグ修正と、…

音の理屈と実践

この記事はDXRuby Advent Calendar 2013の14日目です。 13日目の記事はあおいたくさんのならせる!SEでした。まさかのSoundEffect記事。ピコピコ音を生成する機能だが、音の原理や波形のイメージが頭の中に無いと地味に理解しづらい機能でもある。記事では言…

Spriteにまつわるあれこれ

この記事はDXRuby Advent Calendar 2013の8日目です。 7日目の記事はしのかろさんのDXRubyのSpriteを継承して拡張する方法についてでした。あおたくさんとハイドさんがMarkdownで綺麗にしてくれました。https://gist.github.com/RPGP1/7833833Spriteの挙動を…

DXRubyのポリシーなど

最近、mrubyのSDLライブラリや、Rubyでも他のゲームライブラリなどが出てきている。前からRuby用ゲームライブラリは比較的たくさんあったわけだが、他のものを眺めていて、ようやくいまごろDXRubyの特徴的な設計方針がわかったような気がした。 もともと作り…

Window.draw_morphを使う

この記事はDXRuby Advent Calendar 2013の2日目です。 1日目の記事はあおいたくさんのIntroduction to DXRubyでした。なんか初っ端から気合の入った紹介記事だったが、2日目は急展開でマイナーな機能の活用ネタとして、Window.draw_morphを使ってみる。 draw…

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)

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