このページについて
主にQueek2のプログラムについて色々と。気に入ったソースがあれば、お好きに持っていって構いません。改造なども
自由です。全て大文字のところはファイル名などです。タブに全角スペース
を使っているのでそのままコピー貼り付けをするとエラーが出ます。半角か
タブを入れてください。
とりあえずテンプレート
Queek2の基本処理(マップ関数)です。↓此処からソースコード
mapfunc FUNCNAME(){
PutPlayer();
PlayMusic("MUSICNAME.***", 1);
TransitMap(-1, 10);
while(1){
PeekAllMessage();
//此処に処理を追加
NormalProcess(1);
}
}
ブラーとか
DrawTextや、FillRectといった関数を上で紹介した基本処理内で使うと不思議なことが起こります。実際に試してみると分かりやすいですが、
なにやら定期的にジラジラします。コレの原因はFlipScreenに在ること
が分かりました。NormalProcessの引数を1にすると内部で自動的にFlip
Screen関数を呼び出してくれます。しかしこれだと、ブラーがかかるの
です。
とりあえず、NormalProcessの引数を0にし、表示、フレーム処理、ゲ
ームオーバー判定などをまとめて関数にし、FlipScreen関数とまとめた
関数を直接基本処理while(1){ }内に入れてみるとブラーが消えます。
…ちょっと面倒ですね。ただ、描画系をしない場合こんなことしなくて
も問題ないです。
Queek2のバグとか
かなり自由度が高く良い点の多いQueek2ですが、いくつかバグがあるので一応確認できた物だけ挙げておきます。
・弾丸の攻撃力補正がされない
・MP3再生/停止で強制終了することがある(タイミング?)
・Midiでたまに音の欠損、音程のズレ
・キャラクターが移動中の場合GetCharaPosの高さは0が返る(仕様?)
・GetCharaDir関数で強制終了
・Select関数でキャンセル時データ関連付けが行われない(選択肢の数が変化する場合のみ)
・SplitColor関数が機能しない※
・NormalProcess(1)では図形描画がジラ付く
・回復アイテムの表示で%が2つ表示される
※:同じ機能の関数を自作しました。↓
SplitColor関数
2,3,4番目の引数にどうやら代入されないみたいです。ということで自作してみました。
//code:カラーコード/r,g,b:分解したRGBの格納先 void SplitColorEX(int code, int *r, int *g, int *b){ *r = code >> 16 & 0xff; *g = code >> 8 & 0xff; *b = code & 0xff; }
役に立つ(?)プログラム
役に立つであろう関数群です。txtでプログラムが書かれているので、任意のqcファイルに内容を全てコピー&ペーストして貼り付けて使用してください。
なお、一部改良する必要がある部分があります。そちらはリファレンスを参照してください。
※製作中のRPGから直接引っ張ってきたのでエラーが出る可能性があります。近いうち検証します。
↑検証の結果エラーがいくつか出たので修正しました。
また、体力グラフ表示関数ではDrawText, FillRect等を使用しているので前述のことをした方がいいかもしれません。
ソースコード
リファレンス(新しくウィンドウを開きます)