| ||||||||||||
|
1025個以上のオブジェクトを配置
| ||||||||||||
1ウィンドウ内のオブジェクト配置数には限界があり、 HSP2は64個、HSP3では1024個を超えると問題が出てきます。 HSP2は65個以上配置すると、変数が別に設定していても正常に保持できず、 HSP3以降は1025個以上配置すると、エラーでアベンドしてしまいます。 どちらも値の保持変数以外に、オブジェクト自体の情報(位置やサイズ等)を保持した領域があり、 ウィンドウごとに用意されたBMSCR構造体にソレは格納されていますが、 HSP2では、オブジェクト64個分固定の領域があることに対し、 HSP3では、オブジェクトを管理するHSPOBJINFO構造体の位置だけを保持しており、 そのHSPOBJINFO構造体は可変長であるので、1025個以上配置可能となっています。 1025個目の配置でエラーになるのは、BMSCR構造体内のオブジェクト数上限を確認してる為で、 そのオブジェクト数リミッター領域を書き換えることで1025個以上配置できるようになります。 場所はBMSCRの配列要素73番目に位置するobjlimitとなっているので、 下記のサンプルのように上書きすれば、新しく設定したリミット数以下はエラーが出なくなります。 ただ、コレはあくまで「HSP3以降での上限数を超えるやり方」についての説明であり、 そんなに多くのオブジェクトを配置しなければならないようなプログラムは見直すべきでしょう。 使用してないオブジェクトは擬似的に画像に置き換える等の工夫をしないと、 ムダに重いだけのソフトで、とても「使う側の立場に立って作られたソフト」だとは思えないと思います。 | ||||||||||||
![]() | ||||||||||||
| ||||||||||||