日記

5月 20日 (木)

1. 吉里吉里

TJS2側で作ったクラスを、C++側で扱うテスト。とりあえず、クラス名を取得することはできた。明日はプロパティの扱いやメソッド呼び出しなんかをやってみる。予定。

5月 21日 (金)

1. 吉里吉里

TJS2側で作ったクラスを、C++側で扱うテスト。受け取ったオブジェクトのプロパティを扱う練習。練習ついでに矩形同士の接触・交差判定処理をC++で実装してみた。といっても、判定処理自体は一行で書けてしまうほど簡単なわけで、要はあれあれ、ネイティブ実装してみたかっただけ。

5月 23日 (日)

1. 吉里吉里

1.1. プロパティと関数

プロパティと関数、どっちが速いかを簡単にテストしてみた。単にforループで100万回くらいget, setを繰り返しただけ。結果、単純な値のset, getでは、プロパティ経由のほうが1割くらい速かった。まあ、forループ自身のコストを無視しているので誤差は結構大きいかもしれないが。

1.2. Rectangle

ついでに、矩形接触判定処理をC++(DLLプラグイン)で実装した場合と、TJSで実装した場合の実行速度を比べてみて、実はTJS実装の方が1割ほど速かったという結果を見て愕然とするテスト。

DLLプラグイン呼び出しが遅いのは、実際にやりたい処理が極小なのに対して、呼び出しのオーバーヘッドが大きいからなのだろう。まあ、この結果は予測の範疇ではあったのだが。DLLプラグインは、使いどころを見極めないと。

1.3. Run

  • スクリーンモード 640*480
  • 実効領域 320*480
  • 画面更新速度 約30FPS
  • 自機数 1
  • 自機弾数 0
  • 敵弾数 128
  • 敵弾攻撃判定+自機喰らい判定
  • 敵弾攻撃判定+自機掠り判定

たったこれだけでCPUパワー *1 を50%近くも消費しているのをタスクマネージャで確認して愕然としてみるテスト。んー、これじゃゲームにならんな。

  • *1: AthlonXP 2500+ を 133*11=1463MHz のアンダークロックで稼動

2. MADLAX

「ヤンマーニ」ばかりが有名になってなんだかアレですが…

主に偶数話に登場する電波全開の御主人様マーガレットと、素敵過ぎるメイドのエリノアさん。この二人の言動を見て楽しむアニメ、それがMADLAX。

ちなみにnowhereはいい歌ですよ。

5月 24日 (月)

1. きりきりのお時間

1.1. pool

オブジェクトプールを高速化。あと、使用中のオブジェクトに対してobj.recycle();とすることで、然るべきPoolに帰るようにした。

2. sakura

サクラエディタ用のマクロを作りました。内蔵の補完機能だけではできないことをやりたかったので。

サクラエディタ用マクロの実装方法として、pascal, VBScript, JScript 等がありますが、外部ファイルを扱う必要があるため、VBScript(+ WSH)で実装することにしました。VBは文字列処理能力が貧弱なので、コーディングは少々面倒です。PerlかRubyに対応していれば、喜んでそちらを使うのですが。

5月 25日 (火)

1. アキバ

DVD-Rとか本とか光ケーブルとかいろいろ買ってきました。吉里吉里の本は、内容がKAGに偏っていたので買いませんでした。今のところ、KAGにはあまり興味がないのです。

2. さくらんぼ

70へぇ。

5月 26日 (水)

1. 誤訳ではありません

1.1. コンニチハ

はい、こんにちは。

1.2. マジック学校 バスの概要は、太陽系を探索します。

プラネタリウムに結構な旅行が進みそして「morph」にストレート outer space に見出されるロケットへ乗っているバスを含みそして彼女がどんなここで見出しかもしれないに関して手掛かりを使わないで教師を次に失うのを想像します。

どなたか、この怪電波を日本語にデコードできる方、いらっしゃいますか?

太陽系を検索する前に、まずは御社サイト内のおかしな文章を検索していただければと思います。

1.3. Microsoft動物園

おまけ。

2. サクラエディタ用マクロ 〜 Java編

20〜30行程度のVBScriptマクロひとつでここまで出来ます。それなりの仕込みは必要ですけどね。

  1. 「class0 TestClass」を選択
  2. マクロ発動!
  3. クラス、コンストラクタ、main()コードが出力される
  1. 「property size int サイズ」を選択
  2. マクロ発動!
  3. 変数宣言とgetter(), setter()コードが出力される
  1. 「dp.iterator myBooks List」を選択
  2. マクロ発動!
  3. for文によるIterationコードが出力される

そういえば、まだコンパイルしたことないですね…(ぉ

5月 27日 (木)

1. 吉里吉里

1.1. movie

ムービープレイヤーを作ってみた。といっても、VideoOverlayクラスを使えば楽勝なんだが。現状、DivX5を再生できない、オープン中は再生サイズを変更できないなどの欠点はあるが、Macromedia Shockwave Flashプレイヤーとしては十分。

5月 28日 (金)

1. elfen lied

人の首とか腕とか脚とか、いろんなものが千切れて飛んでいくこの作品が、テレビアニメ化されるようです。どう表現するんでしょうね、あのシーンとか、あのシーンとか、あのシーンとか…

2. JavaScript

JavaScriptが有効でないと何も出来ないサイト。elfen liedのサイトとかLASTEXILEのサイトとか。なんか、門前払いを喰らった感じがして、実に不快です。

3. ヤシガニ

Q.
「ロストユニバース」の第4話は、TV放送時のものではありませんでした。TV放送時のソースを放送する ということではなかったでしょうか?
A.
がっかりさせてしまったのは、ごめんなさい!

それはがっかり。日本全国十億人のヤシガニファンはさぞ落胆したことでしょう。

4. 紙のように薄い太陽電池、シャープが開発

発電効率の良い太陽電池が開発されたのは嬉しいのですが、手放しでは喜べない化学科出身の私。

化合物半導体の原料として使われ続けている元素として、インジウムガリウム砒素等がありますが、これらの元素は人間に猛毒であったり、地球上にはあまり存在していないものが多く、環境・資源面で何年も前から問題となっています。もちろん、これらは化合物半導体にだけに使われているわけではないのですが、インジウムやガリウムなんかは、今のまま使い続けていくとあと十年〜三十年くらいで枯渇するとも言われていました(数年前の話)。量産にあたっては、この辺の問題をどうクリアするかがポイントだと思います。

5月 29日 (土)

1. 東方永夜抄 〜 Imperishable Night. 体験版

延々とこればかりやっていたような気がします。

2ボスの暗闇、あれは卑怯です。1ボスのラストスペルもかなりアレです。

とりあえず、博麗霊夢(NORMAL)で3.5億。

2. 吉里吉里

2.1. 整備

自作のフレームワーク周りを整理。骨組みがもろくてはビルが建たないわけで。

5月 30日 (日)

1. Hot!

暑いです。もう夏ですか。部屋の温度計は35度を示しています。まだ五月だというのに…暑さに耐え切れず、クーラーをつけてしまいました。

今年、初クーラー、初冷麦。

2. Open and Close

ここ1〜2ヶ月、CDプレイヤーの「開けたら閉まる」現象が再発しています。暖かくなると起こるようです。困ったものですね。

3. きりきりのお時間

3.1. Shotgun and Handgun

プールを継承して弾丸プールを、銃を継承してハンドガンとショットガンを作成。ショットガンのパラメータをちょいと弄るだけで全方位弾が出来上がるし、ハンドガンの発射間隔、リロード時間、初速度誤差(速度のばらつき)、命中精度誤差(下手くそ度)を弄ればアサルトライフルになるのだが、それはまた別の話。この2タイプを元にすれば、大抵の弾幕は作れる。かもしれない。

3.2. Try and Error

  • OSたんシューティング(仮)

相変わらず自機の弾がない、って別にシューティングゲームを作りたいわけじゃないんだが、なぜかシューティングになってしまう。まあ、世の中そんなもんだ。

ていうか、何だこれ。

5月 31日 (月)

1. Microsoft日本語

  • "。男性を言う何"。
  • "。全フル kinja を与えるはい"。
  • "。。記憶する"。

句点で始まる文章って初めて見ました。

2. 吉里吉里

2.1. Rectangle and Segment

レーザーのような直線ベースのオブジェクトと、矩形ベースのオブジェクトとの接触判定方法を考えてたら、どうにも面倒くさそう。

  • 線分の両端の点のどちらかが矩形内含まれる
  • 線分と、矩形の四辺のいずれかが交わる

のどちらかを満たせば、交差すると言えるのだが…すべての条件が偽にならなければ、全体として「偽」とはいえない。統計的に、ゲーム中には接触判定が偽になるケースのほうが圧倒的に多いため、意外と速くはないのかも。

2.2. Circle and Segment

円と線分の交差・接触判定方法を考える。単純に考えると、円と直線の不等式から交点を算出して…ということになろう。が、ちょっとひねって考えてみると、円の中心点と直線との距離が、円の半径よりも大きい場合、絶対に交わらないといえる。この命題を利用して、真っ先に交わらない場合を除外してしまえば、ゲームにおいては意外と速いかも。

さて、どうしたものか。どっちにしても、計算が多いことには変わりないから、実装はC++になるだろうな。

2.3. affine

画像を回転させて保存するプログラムを作る。吉里吉里のアフィン変換で梃子摺った。まあ、いろいろと。高校数学は大事ってことだ。