HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0909
鈍なくらhgimg3のSYSREQ_MAXTEXで、テクスチャ最大数が変化しない。3解決


鈍なくら

リンク

2014/9/9(Tue) 20:28:17|NO.64786

いつもお世話になっております。
個人でゲームを作っていまして、簡単にスクリプトを組めるhgimg3には
本当に助けられています。


ところで表題のとおり、hgimg3のシステムリクエスト、
テクスチャの最大数を変える「hgsetreq SYSREQ_MAXTEX」ですが、
下記のように記述しても、最大数が初期値512個のまま、変わらないようです。

私の単純な記述ミスかもしれませんが・・・。
説明書の熟読が足りてないのかもしれませんが、
悩んでも答えが浮かばず、原因を知りたくてご質問させて頂きました。


;■■■前準備■■■■■■■■■■■■■■■■■■■■■■■■■■■■ #include "hgimg3.as" screen 0,200,300 hgsetreq SYSREQ_MAXTEX,1000 ;テクスチャ最大数を512→1000に hgsetreq SYSREQ_MAXMODEL,1000 ;モデル最大数を512→1000に hgsetreq SYSREQ_MAXOBJ,1000 ;オブジェクト最大数を512→1000に hgini ;■■■IDを格納する配列を作成■■■■■■■■■■■■■■■■■■■ dim tex,600 ;テクスチャIDを入れる配列 dim spr,600 ;モデルIDを入れる配列 dim obj,600 ;オブジェクトIDを入れる配列 for i,0,600 ;読込失敗が判別しやすいよう、配列の全要素を -1 に。 tex(i)==-1 : spr(i)==-1 : spr(i)==-1 next ;■■■オブジェクトを600個作る■■■■■■■■■■■■■■■■■■■■ ;※画像を用意しなくてもチェックできるよう、今回はメッセージテクスチャ for i,0,600 texmake 80,80 : tex(i)=stat addspr spr(i),1,0,0,80-1,80-1,tex(i) regobj obj(i),spr(i) next ;■■■別のスクリーンにIDを出力■■■■■■■■■■■■■■■■■■■ x1=0 : x2=150 : x3=300 : y=0 screen 100 ;512付近のテクスチャID pos x1,y mes "↓テクスチャID" for i,500,530 mes tex(i) next ;512付近のモデルID pos x2,y mes "↓モデルID" for i,500,530 mes spr(i) next ;512付近のオブジェクトID pos x3,y mes "↓オブジェクトID" for i,500,530 mes obj(i) next stop



この記事に返信する


カレー

リンク

2014/9/10(Wed) 08:53:43|NO.64802

テストしてみましたが確かにおっしゃる通りですね。
hggetreqで確認すると最大値はセットされているようですが、
実際には512個までしか登録されないようです。
私が開発中のゲームでもテクスチャの開放を忘れるとすぐに真っ白のオブジェクトが
出来てしまうため最大値を増やしたのを思い出しました。
しかしキチンと増えているのかは確認してませんでしたね。

今のところオブジェクトを削除する際にテクスチャも忘れずに削除する事と
モデルを先に登録して画像を読み込む方法を使うことで対処しています。
(開発初期は、先に画像を読込して一つ一つの画像にテクスチャIDを振っていました)



なくら

リンク

2014/9/10(Wed) 19:30:35|NO.64810

カレーさん、お返事ありがとうございます。
気のせいじゃなかったようで、安心しました。

hgimgでゲームを作ってみて、テクスチャやモデル、オブジェクトの
読み込み方をどうするか、一番の悩みどころだと感じています。

今回のゲーム製作では、「起動時にテクスチャとモデルを全て読み込んでおく」
という方法をとっていました。ただ、このことが話題に出てこないということは、
このやり方自体 変なのかもしれません。


>>モデルを先に登録して画像を読み込む方法を使うことで対処しています。

テクニックをありがとうございます。やはりそうされてるんですね・・;
hgviewとOBJ_HIDE属性を使って、ゲーム画面を分割するために、
私も、全部のテクスチャIDを配列にまとめて、管理するようにしてました。

立ち絵を表示する時、モデルに登録した画像をいったん削除して読み込み直したり、
アイコンサイズを統一して ひとつの画像にまとめたり、
テクスチャ数を減らすよう工夫したつもりでしたが、その結果が512枚越えでした。

派手でガンガン出したい戦闘エフェクトのように、読み込みのタイムラグがあっては困る場合、
シーン開始時に全て読み込んでおきたいのですが、そうするとテクスチャ枚数が足りなくなりそうで。
難しいですよね。



おにたま(管理人)

リンク

2014/9/12(Fri) 22:37:57|NO.64873

ご報告ありがとうございます。
SYSREQ_MAXTEXの値が反映されない現象について、こちらでも確認しました。
今後のバージョンで、修正させて頂きます。



ONION software Copyright 1997-2021(c) All rights reserved.