RPGのマップの表示の速度について
Posted: 2014年3月25日(火) 08:12
Dxライブラリによる画像表示でRPGのマップのようなものの倍率を高め表示したいと思いいたったのですが、いかんせんこの書き方では処理がとても重いので、何とか軽量化できないでしょうか
#include <DxLib.h>
void GetColorPixel(int,int,int,int);
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
DxLib::ChangeWindowMode(true);
DxLib::DxLib_Init();
int x = 0; int y = 0;
GetColorPixel(DxLib::LoadGraph("products_rpgvx_lecture_sample01.jpg"),x,y,4);
DxLib::WaitKey();
DxLib::DxLib_End();
}
void GetColorPixel(int graph, int x, int y, int n){
DxLib::ClearDrawScreen();
int sizex, sizey;
DxLib::GetGraphSize(graph,&sizex,&sizey);
DxLib::DrawGraph(0,0,graph,true);
int **color = new int*[sizex];
for(int i=0; i<sizex; i++)
color[i] = new int[sizey];
for(int i=0; i<sizex; i++)
for(int j=0; j<sizey; j++)
color[i][j] = DxLib::GetPixel( i , j );
DxLib::ClearDrawScreen();
for(int i=0; i<sizex; i++)
for(int j=0; j<sizey; j++)
DxLib::DrawBox(i*n+x,j*n+y,i*n+n+x,j*n+n+y,color[int(i)][int(j)],true);
for(int i=0; i<sizex; i++)
delete[] color[i];
delete[] color;
}