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

Flash用のなにか

最近、Flashの勉強をしている。 と言ってもActionScriptは全然で、Flashのswfファイル解析、swf内のABC(ActiondcriptByteCode)解析みたいなこと。 FlexだってActionScriptをコンパイルしてswfを吐き出しているわけだから、これらの構造さえ理解できて出力す…

SWFファイルのヘッダ

とーとつにFlashに興味が沸いたので手始めにヘッダを解析してみた。 問題なのは興味の対象がFlashであってASではないところだ。 #! ruby -Ks require 'zlib' class SWF attr_reader :version, :length, :x_min, :x_max, :y_min, :y_max, :frame_rate, :frame…

少しできた。

先日のサンプルの続きを作っていた。 とりあえず本家サンプルのStage1〜7プラスExtraという構成のうち、Stage1だけできた。 http://dxruby.sourceforge.jp/files/AAM_DXRuby_Sample.zip ただ、絵については本家のものを使うから、本に付属しているCDからText…

LeverDashMan

「アクションゲームアルゴリズムマニアックス」っつー本がある。 話のタネにと思ってずっと前に買ったのだが例によってそのまま積んであった。 タイトルの通り、アクションゲームにありそーなアルゴリズムについて片っ端から説明とサンプルコードが書いてあ…

classとStruct

RubyにはStructというクラスがある。 データを出し入れする専用のクラスを簡単に定義するためのものだ。 Hoge = Struct.new(:x, :y) foo = Hoge.new(5, 10) p foo.x # => 5 p foo.y # => 10 foo.x = 20 p foo.x # => 20 Struct.newすることで、その引数のatt…

Vectorと破壊的メソッド

DXRuby1.1もDXRubyFramework0.0.3も、VectorクラスはImmutableとして作っている。 もともとMatrixは3Dのビューやらの設定用、VectorはShaderのパラメータ用、みたいな感じで作ってあったから、特にShaderの設定値はVALUEでそのまま保持する都合上Immutableじ…

分離面判定法による回転した矩形の衝突判定

Cで実装しようと思ったが難しいのでとりあえずRubyで作ってみた。 これを作るためにDXRubyFrameworkにMatrixとVectorを追加した。 こういうことをするなら無いとやってられない。 あとはこれをCで書いて組み込むだけだが、正直なところ大変だ。 時間かかりそ…

DXRubyFramework0.0.3リリース

さきほどのコードを実行できるだけの機能を持った、DXRubyFramework0.0.3をWikiに置いた。 http://dxruby.sourceforge.jp/cgi-bin/hiki.cgi?%A5%D5%A5%A1%A5%A4%A5%EB%C3%D6%A4%AD%BE%EC DXRuby1.1系には3D用にMatrixとVectorを入れてあったが、1.0系には無…

PCが変わってるから比較できない。

なかなか困った状態ではあるのだが。 Athlon II X2 240e(800MHzにダウンクロック中)、GeForce8400GSにて。 WindowsXP、Ruby1.9.1、DXRuby1.0.9、DXRubyFramework0.0.3(未公開)。 require "dxruby" require "dxrubyfw" class Ruby < Sprite MAX_X = 639 - 32 …