2006年3月16日より、ブログをwww.be-interactive.orgに統合しました。

お手数ですが、リンクの張替えをお願いいたします。コメントやトラックバックもそちらへお願いします。

2006年03月16日

統合します(こっちにはもう書きません)

Category : Blog

予告通り、www.be-interactive.orgに全て統合しました。

今後、こっちにはもう書かないのでよろしくです。コメントやトラックバックも向こうへ。

エントリのリンクの張り替えなんかもよろしくお願いします。


Posted by be_interactive at 22:56 | Comments(12) | TrackBack(0)

2006年03月13日

予告

Category : Diary

そろそろlivedoorBlogをやめてwww.be-interactive.orgに統合しようと思います。ついでにデザイン変えます。(1年ごとにデザイン変えてるなぁ・・・)

てか、Nucleus弄ってるんですがかなり泥沼状態に・・・


Posted by be_interactive at 17:09 | Comments(2) | TrackBack(0)

2006年03月11日

switch-caseの最適化

Category : ActionScript

先日のスクリプトエンジンのVirtualMachine(VM)でも使っているテクニックなのですが、VMはバイトコードに対応した処理をしなければならないので、

for (; pc < length; ) {
    switch (code[pc]) {
        case 'NOP': pc += 1; break;
        case 'LIT': code[code[pc+2]] = code[pc+1]; pc+=3; break;
        case 'ADD': code[code[pc+3]] = code[pc+1] + code[pc+2]; pc+=3; break;
        ....
        default: throw Error();
    }
}

というように、大量のcase分岐が必要になります。Flashはswtich-caseで単純な比較&ジャンプのコードしか生成しないので、このように大量にcaseがあると、一番最後のcaseが実行される場合なんかは悲惨な速度になります。

そこで、このswitch-caseを次のようなメソッド呼び出しに変更することによって、効率化を図ることが出来ます。

for (; pc < length; ) {
        pc += this[code[pc](code, pc);
}
...
private function NOP (code:Array, pc:Number) : Number
{
    return 1;
}
private function LIT (code:Array, pc:Number) : Number
{
    code[code[pc+2]] = code[pc+1];
    return 3;
}
private function ADD (code:Array, pc:Number) : Number
{
    code[code[pc+3]] = code[pc+1] + code[pc+2];
    return 4;
}
....

勿論、メソッド呼び出しのコストはかかるのですが、caseが大量であれば、平均するとこちらのアプローチの方が効率的です。

もしこのようなコードを書く機会があれば、両方試してみて、最適なものを選んでみてください。


Posted by be_interactive at 23:32 | Comments(0) | TrackBack(1)

2006年03月10日

暗号化SWF

Category : ActionScript

ActionScript3からは外部SWFのLoaderがByteArrayからの読み込みに対応しているので、念願の暗号化SWFが出来ますね。しかも、ByteArrayがzlib形式の圧縮・解凍に対応していたりと、至れり尽くせりです。

ゲーム用の独自のアーカイブとか考えてみようかなぁ・・・。


Posted by be_interactive at 22:09 | Comments(4) | TrackBack(0)

2006年03月09日

ActionScript上でECMAScript+αなスクリプトを動かす

Category : ActionScript

昨日のエントリfladdict.netさんで紹介されて浮かれております。という訳で、続きです。

そもそも、どういう時にスクリプトエンジンが必要になるのか?という所ですが、元々このエンジンはゲームを製作しやすくしようプロジェクト(今勝手に命名)の一環として作ったもので、やはりゲーム系なんかで役に立ちそうです。

とりあえず、このスクリプトエンジンの特徴と仕様を書いてから、いくつか使用例を挙げてみるので、そこからスクリプトエンジンの使い道を探ってみてください(笑

続きを読む


Posted by be_interactive at 18:59 | Comments(452) | TrackBack(2)

このブログについて / Description

Flashとプログラムと音ゲーと。

こうさぎ / BlogPet
新着コメント / Comments
著者 / Author
ミ゚Д゚,,彡yossy◆FLASH44rww
本名Yoshihiro Shindo。高校2年生っぽい。
プログラマー、Webデザイナー、Flash職人、イラストレーター、自分でもなんだかよく分からない。
扱えると思われる言語は、ActionScript(1.0/2.0)/PHP(4/5)/Java/C/C++など。
DDR(指)は好きだけど開発止まっちゃったので最近はIIDXに浮気中。
IIDX / beatmaniaIIDX
dj 441
IIDX ID
4911-7758
段位認定
RED SP六段88%
CS9th SP四段

最近専らNORMALプレーヤーです。ライバル登録お待ちしております!

提供 / powered by

livedoor Blog

その他 / Misc.