« [解剖記]アナログジョイスティックへの対応 | トップページ | [改造記]まずは初期設定 »

[改造記]はじめに

ここではHspにDirectXの機能を付加することができる「hspdx.dll」についての解説を行います。予めお断りしておきますが、「奮闘記」や 「解剖記」を読んでも全然意味がわからない~という方は、秀和システムの「Hspプログラミング入門」等を通読して、基本的なことは押さえてからここの解 説に移って下さい。

Hspは非常に高速な言語です。ただ、リアルタイムで処理するプログラムになると、標準命令だけではどうしても限界があります。それは画面描写速度が 原因となる部分が殆どです。これは別にHspだけの問題ではありません。Windowsの限界なのです。「Aeolianation」を見ていただければ わかると思いますが、Hsp標準命令だけでもあれくらいはできます。実はウィンドウズサイズがそれほど大きくないので負荷が少ないという理由もあるのです が^^;

そこで登場したのがDirectXです。これは Windowsの弱点を補うべく、Mircosoftが開発した「高速な画面描画のためのコンポーネント」です。これは、それぞれのビデオカードごとにド ライバを用意することにより、直接ビデオカード上のハードウエアを介して画面描画を行なうことを可能に する、というものです(Hsp2.5添付のhspdx.txtより)。このDirectXを使うことによって、非常に高速な画面描写をすることが可能にな りました。

ただ本当は、普通にDirectXを使おうと思うとめちゃディープなWindowsの知識が必要だったりします(私もこのへんはまだ全然わかりません^^;)。ところがHsp2.5に添付されているhspdx.dllを使うことによって、このDirectXを比較的簡単に扱うことができるのです。命令一つでスプライト(ファミコンなんかで使われてた、キャラクタを簡単に制御する奴です)の機能を使えたり、命令一つでそのスプライト同士の衝突判定をすることが出来るのです。

ただ、DirectXを比較的簡単に扱うことができる、とは言ってもやっぱりいろいろ面倒です。また、実はこのhspdx.dllには若干のバグがあって(※注:バグがあるのはHsp2.5に添付されていたバージョンなので、Hsp2.6を使っている場合は問題ありません)、それが原因でデバッグが非常に難しい状態になってしまっています。そこでここではhspdx.dllの基本的な使い方と、Sinagawaさんによってデバッグされたhspdxfix.dll(※注:Hsp2.6には標準で添付されるようになりました)便利機能について解説をします。最終的には「解剖記」で解説しているサンプルスクリプトを、DirectX完全対応に改造するところまでやります。

※文中で打ち消し線が入っている箇所は、Hsp2.6が出たことにより記述が現実に即さなくなった部分です。

Divide by 0 Divide by 0
Hspdxfix.dllは進化を続け、現在ではv0.19cになっています。Direct3D対応になり、回転・半透明・加算合成などもできるようになってます。

« [解剖記]アナログジョイスティックへの対応 | トップページ | [改造記]まずは初期設定 »

3.改造記」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/67538/57445616

この記事へのトラックバック一覧です: [改造記]はじめに:

« [解剖記]アナログジョイスティックへの対応 | トップページ | [改造記]まずは初期設定 »