//1、基本プログラム。次のプログラムでこの画面をアスペクト比を保ちながら、800*600でフルスク化することを目標とする。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
//ウインドウモード
ChangeWindowMode( TRUE );
// 画面解像度を800*480に設定
SetGraphMode( 800, 480, GetColorBitDepth() );
// DXライブラリの初期化
DxLib_Init();
// 描画先を裏画面にする
SetDrawScreen( DX_SCREEN_BACK );
// カメラ位置、注視点をセット
SetCameraPositionAndTarget_UpVecY( VGet(0.0f, 0.0f, -1000.0f), VGet(0.0f, 0.0f, 0.0f) ) ;
//描画領域の境目を分かりやすくするため、背景を青で塗ってみる
DrawBox(0,0,800,480,GetColor(0,0,255),TRUE);
//Zバッファの設定
SetUseZBuffer3D( TRUE ) ;
SetWriteZBuffer3D( TRUE ) ;
//球を3つ描画
DrawSphere3D( VGet( 0.0f, 400.0f, 0.0f ), 200.0f, 32, GetColor( 255,0,0 ), GetColor( 255, 255, 255 ), TRUE ) ;
DrawSphere3D( VGet( 0.0f, 0.0f, 0.0f ), 200.0f, 32, GetColor( 255,0,0 ), GetColor( 255, 255, 255 ), TRUE ) ;
DrawSphere3D( VGet( 0.0f, -400.0f, 0.0f ), 200.0f, 32, GetColor( 255,0,0 ), GetColor( 255, 255, 255 ), TRUE ) ;
//表画面へ反映
ScreenFlip();
// キー入力待ち
WaitKey();
DxLib_End();
return 0;
}
//2、1の画面をアスペクト比を保ちながら、800*600の解像度でフルスクリーン化を目指す。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
// 800*480の画面をアスペクト比を保ちながら800*600にスケーリングするため、上下に60の黒帯を入れる
SetGraphDisplayArea( 0, -60, 800, 480+60 );
// 画面解像度を800*600に設定
SetGraphMode( 800, 600, GetColorBitDepth() );
// DXライブラリの初期化
DxLib_Init();
// 描画先を裏画面にする
SetDrawScreen( DX_SCREEN_BACK );
//描画領域を設定
SetDrawArea( 0, 0, 800, 480 );
//画面の消失点をスクリーン上の中央に設定
SetCameraScreenCenter( 800/2, 480/2 ) ;
//スケール値を設定
SetDraw3DScale( 480.0f / 600.0f );
// カメラ位置、注視点をセット
SetCameraPositionAndTarget_UpVecY( VGet(0.0f, 0.0f, -1000.0f), VGet(0.0f, 0.0f, 0.0f) ) ;
//描画領域の境目を分かりやすくするため、背景を青で塗ってみる
DrawBox(0,0,800,480,GetColor(0,0,255),TRUE);
//Zバッファの設定
SetUseZBuffer3D( TRUE ) ;
SetWriteZBuffer3D( TRUE ) ;
//球を3つ描画
DrawSphere3D( VGet( 0.0f, 400.0f, 0.0f ), 200.0f, 32, GetColor( 255,0,0 ), GetColor( 255, 255, 255 ), TRUE ) ;
DrawSphere3D( VGet( 0.0f, 0.0f, 0.0f ), 200.0f, 32, GetColor( 255,0,0 ), GetColor( 255, 255, 255 ), TRUE ) ;
DrawSphere3D( VGet( 0.0f, -400.0f, 0.0f ), 200.0f, 32, GetColor( 255,0,0 ), GetColor( 255, 255, 255 ), TRUE ) ;
//表画面へ反映
ScreenFlip();
// キー入力待ち
WaitKey();
DxLib_End();
return 0;
}
このようなやり方が正しいかはわかりませんが
私はこのような方法でフルスクリーン化する予定です。
一応、私の環境ではこれで上手くいく(ように見える)ことを確認しました。
これでいけないでしょうか?