ページ 11

SetGraphMode()を使うと途端に重くなります。

Posted: 2011年8月16日(火) 17:15
by LisetteLander
それまで640*480のデフォ解像度で作っていたのですが
大きい画面でやろうとSetGraphMode()でウィンドウの大きさを変えると
非常に処理が遅くなります。
不思議だなと思って
SetGraphMode(640,480,16)としてみましたが、変わらずに重いです。
どうしたらいいのでしょうか?

コード:

#define X_MAX 640
#define X_MIN 0
#define Y_MAX 480
#define Y_MIN 0

コード:

#define GLOBAL_INSTANCE
#include "head.h"

int ProcessLoop(int status){
	if(ScreenFlip()!=0)return -1;
	if(ProcessMessage()!=0)return -1;
	if(ClearDrawScreen()!=0)return -1;
	if(gpUpdateKey()!=0)return-1;
	if(status==99)return-1;
	return 0;
}

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
        ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK )/*,SetGraphMode(X_MAX,Y_MAX,16)*/; //ウィンドウモード変更と初期化と裏画面設定

		fast_ini();

		int status=100;
		int status_select=0;

		while(ProcessLoop(status)==0){
				//ゲーム処理
				draw_main(status);
		}
		DxLib_End(); // DXライブラリ終了処理
        return 0;
}

Re: SetGraphMode()を使うと途端に重くなります。

Posted: 2011年8月16日(火) 18:08
by softya(ソフト屋)
確かに遅くなりますね。
たしか自動スケーリンク機能が働くのが原因だったかも(うろ覚え)。

DxLib_Init()前にSetGraphMode()を呼び出せば大丈夫ですよ。

Re: SetGraphMode()を使うと途端に重くなります。

Posted: 2011年8月16日(火) 18:45
by LisetteLander
的確で迅速かつわかりやすい解答ありがとうございます!