以下がそのプログラムになります。
画像も貼りたいのですが、画像の貼り方がよくわかりません……。
乱れるというのは少し間違った表現でした。
graph.pngをそのまま描画すると、濃く表示されるのですが、MakeScreenに画像を貼ってから表示すると
薄くなってしまいます。
サイズは変えていないで、ただ2枚並べただけなのですが……。
//////////////////////////////////
#include "DxLib.h"
//GetHitKeyStateAll_2()の定義
int GetHitKeyStateAll_2(int KeyStateBuf[]){
//キー情報
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key[i]==1) KeyStateBuf[i]++;
else KeyStateBuf[i]=0;
}
return 0;
}
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
SetGraphMode(640 ,480 ,32); //ウィンドウサイズを640×480にして、32bitカラー
ChangeWindowMode(TRUE);
SetMainWindowText("画像の不具合");
DxLib_Init();
SetDrawScreen( DX_SCREEN_BACK );
int key[256];
int Graph = LoadGraph("file\\graph.png");
//int Graph = DerivationGraph(0,0,300,30,graph);
int equationGraph = MakeScreen(300,60,TRUE);
SetDrawScreen(equationGraph);
DrawGraph(0,0,Graph,TRUE);
DrawGraph(0,30,Graph,TRUE);
SetDrawScreen(DX_SCREEN_BACK);
int back = LoadGraph("file\\white.png");
while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0){
GetHitKeyStateAll_2(key);
if(key[KEY_INPUT_ESCAPE]==1){
break;
}
DrawGraph(0,0,back,FALSE); //背景の白
DrawString(0,0,"↓普通に描画した場合",GetColor(0,0,0));
DrawGraph(0,20,Graph,TRUE); //数字画像
DrawString(0,100,"↓MakeScreenを使って描画した場合",GetColor(0,0,0));
DrawGraph(0,120,equationGraph,TRUE);//数字画像をMakeScreenに貼りなおした画像
}
DxLib_End();
return 0;
}
////////////////////////////////////////////////
Log.txt
///////////////////////////////////////////////
0:システムの情報を出力します
1: DXライブラリ Ver3.07a
3: 論理プロセッサの数 : 4
5: OS Windows7 ( Build 7601 Service Pack 1 )
108: CPU動作速度:大体2.38GHz
109: MMX命令を使用します
110: SSE命令が使用可能です
111: SSE2命令が使用可能です
112: CPUベンダ:GenuineIntel
116: CPU名: Intel(R) Core(TM) i5-2430M CPU @ 2.40GHz
121:COMの初期化... 成功しました
123:メモリ総量:4002.05MB 空きメモリ領域:1222.41MB
130:タイマーの精度を検査します
131:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
133: パフォーマンスカウンターを使用します タイマー精度 : 2338.515000 KHz
135: ソフトの二重起動検査... 二重起動はされていませんでした
137:ウインドウクラスを登録します... 登録に成功しました
138:ウインドウモード起動用のウインドウを作成します
227:ウインドウの作成に成功しました
416:IMEを無効にしました
418:ウインドウスタイルをウインドウモード用に変更します... 完了
422:DirectInput関係初期化処理
423: DirectInput7 の取得中... 成功
468: 引き続き初期化処理... 初期化成功
471: ジョイパッドの初期化...
482: ジョイパッドの初期化は正常に終了しました
483: マウスデバイスの初期化... 初期化成功
485: キーボードデバイスの初期化... 初期化成功
488:DirectInput 関連の初期化は正常に終了しました
493:DirectSound の初期化を行います
495:DirectSound インターフェースの取得を行います.... 成功
506:引き続きインターフェースの初期化処理... 成功
658: DirectSound デバイスを列挙します
660: モジュール名: ドライバ記述:プライマリ サウンド ドライバー
661: モジュール名:{0.0.0.00000000}.{b76a491e-ded0-4d1d-bc1f-d1211f6135a8} ドライバ記述:スピーカー / ヘッドホン (IDT High Definition Audio CODEC)
664: モジュール名:{0.0.0.00000000}.{394df1a0-8ecb-4d10-af9d-3e5bed8650a7} ドライバ記述:通信ヘッドホン (IDT High Definition Audio CODEC)
666: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz
667: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB
669: 利用可能サンプリング精度
671: プライマリ 16bit = OK 8bit = OK
673: セカンダリ 16bit = OK 8bit = OK
675: 利用可能チャンネル
677: プライマリ MONO = OK STEREO = OK
678: セカンダリ MONO = OK STEREO = OK
681:DirectSound の初期化は正常に終了しました
691:DirectDraw オブジェクトの取得を行います.... 成功
703:引き続き初期化処理... 初期化に成功しました
758:IDirect3D9Ex オブジェクトを取得します.... 成功
763:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します
1042:成功
1045:Driver:igdumdx32.dll Description:Intel(R) HD Graphics Family
1048:画面のフォーマットは D3DFMT_X8R8G8B8 です
1051:Zバッファのフォーマットは D3DFMT_D16 です
1054:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
1056:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
1059:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です
1060:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
1060:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です
1062:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
1062:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です
1063:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です
1064:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です
1065:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です
1065:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です
1066:描画用 16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
1067:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
1067:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
1068:描画用ABGR浮動小数点16ビット型カラーフォーマットは D_D3DFMT_A16B16G16R16F です
1086:描画用ABGR浮動小数点32ビット型カラーフォーマットは D_D3DFMT_A32B32G32R32F です
1087:最大テクスチャサイズ 幅:8192 高さ:8192
1088:テクスチャステージテンポラリレジスタ:使用可
1088:減算合成のハードウェア対応:ネイティブ
1089:頂点シェーダーバージョンコード:300
1090:ピクセルシェーダーバージョンコード:300
1119:バックバッファロック転送の時間:3708nsec 一時的な描画可能バッファを使用した転送の時間:1128nsec
1120:バックバッファロックを使用しません
1121:Zバッファを作成します.... 成功
1131:プログラマブルシェーダーを使用します
1204:フォントの初期化を行います
1208:フォントの初期化は正常に終了しました
1233:文字コードバッファの初期化を行います... 完了しました
4043:ウインドウを閉じようとしています
4068:ウインドウが破棄されようとしています
4071:ソフトを終了する準備が整いました
4105:フォントの初期化を行います
4106:フォントの初期化は正常に終了しました
4108:Direct3DDevice9 の解放 3
4139:Direct3D9 DLL の解放 4
4143:DirectInput 関連の終了処理... 完了
4178:DirectSound の終了処理は正常に終了しました
4220:
4222:Alloc memory dump
4223: Total size:0(0.000kb) Alloc num:0
4224: