| 簡易画面出力関数 | ||||||||||||
| ||||||||||||
|
サンプル 画面に適当に文字列を出力する
#include "DxLib.h"
// WinMain関数
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
// DXライブラリ初期化
if( DxLib_Init() == -1 ) return 0;
// Hello C World!と表示、最後に改行
printfDx( "Hello C World!\n" ) ;
// 画面に適当に数値を描画
printfDx( " 600 x 800 = %d \n" , 600 * 800 ) ;
// 画面が降り切れるほど文字列を描画
printfDx( "実験実験実験実験実験実験実験実験実験" ) ;
printfDx( "実験実験実験実験実験実験実験実験実験" ) ;
printfDx( "実験実験実験実験実験実験実験実験実験実験" ) ;
// 画面を青くする
DrawBox( 0 , 0 , 640 , 480 , GetColor( 0 , 0 , 255 ) , TRUE ) ;
// 出力した文字列を表示
ScreenFlip() ;
// キーが押されるまで待つ
WaitKey() ;
// DXライブラリの使用終了
DxLib_End() ;
return 0 ;
}
| ||||||||||||
| ||||||||||||
|
サンプル 画面に延々と文字列を表示しつづけ、キーが押されたら文字列を一掃します
#include "DxLib.h"
// WinMain関数
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
// DXライブラリ初期化
if( DxLib_Init() == -1 ) return 0;
// 描画先画面を裏画面にする
SetDrawScreen( DX_SCREEN_BACK ) ;
// なにかキーが押されるまでループ
while( CheckHitKeyAll() == 0 )
{
// Hello C World!と表示
printfDx( "Hello C World" ) ;
// 画面を青くする
DrawBox( 0 , 0 , 640 , 480 , GetColor( 0 , 0 , 255 ) , TRUE ) ;
// 出力した文字列を表示
ScreenFlip() ;
// Windows依存処理
if( ProcessMessage() == -1 ) break ;
}
// 画面の文字達を消す
clsDx() ;
// 画面にメッセージを表示
printfDx( "消えましたか?" ) ;
// 画面を赤くする
DrawBox( 0 , 0 , 640 , 480 , GetColor( 255 , 0 , 0 ) , TRUE ) ;
// 画面の状態を更新
ScreenFlip() ;
// キーが押されるまで待つ
WaitKey() ;
// DXライブラリの使用終了
DxLib_End() ;
return 0 ;
}
| ||||||||||||
| その他画面操作系関数 | ||||||||||||
| ||||||||||||
|
サンプル 解像度800×600、カラービット数32ビットで起動し、グラフィックを グラフィックを読み込み描画します
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int GHandle ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// 画面モードの変更
SetGraphMode( 800 , 600 , 32 ) ;
// test.bmpの読み込み
GHandle = LoadGraph( "test1.bmp" ) ;
// グラフィックの描画
DrawGraph( 0 , 0 , GHandle , FALSE ) ;
// キー待ち(『WaitKey』を使用)
WaitKey() ;
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
| ||||||||||||
| ||||||||||||
|
サンプル ありません | ||||||||||||
| ||||||||||||
|
サンプル 画面の半分を描画不可能にして画面全体に青い四角を描画しようとする
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int Cr ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// 描画可能領域セット
SetDrawArea( 0 , 0 , 320 , 480 ) ;
// 青色の値を取得
Cr = GetColor( 0 , 0 , 255 ) ;
// 青い四角形の描画
DrawBox( 0 , 0 , 640 , 480 , Cr , TRUE ) ;
// キー待ち(『WaitKey』を使用)
WaitKey() ;
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
| ||||||||||||
| ||||||||||||
|
サンプル ランダムな座標で1000個の点を描画した後画面を消去します
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int i ;
int Cr ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// 白色の値を取得
Cr = GetColor( 255 , 255 , 255 ) ;
// 1000個の点を描く
for( i = 0 ; i < 1000 ; i ++ )
{
// ランダムな位置に点を描く(『GetRand』を使用)
DrawPixel( GetRand( 639 ) , GetRand( 479 ) , Cr ) ;
}
WaitKey() ; // 結果を見るためにキー待ち(『WaitKey』を使用)
// 画面を初期化
ClearDrawScreen() ;
WaitKey() ; // キーの入力待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
| ||||||||||||
| ||||||||||||
|
サンプル ありません | ||||||||||||
| ||||||||||||
|
サンプル 灰色の線を描く
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int Cr ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// 灰色の値を取得
Cr = GetColor( 128 , 128 , 128 ) ;
// 線の描画
DrawLine( 120 , 150 , 300 , 240 , Cr );
WaitKey() ; // キーの入力待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
| ||||||||||||
| ||||||||||||
|
サンプル 最初に表画面を描画先にしてランダムに四角形を描き続き、次に 描画先を裏画面にして同じことをしてみます。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int i ;
int Cr ;
int x , y ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// 描画先画面を表にする
SetDrawScreen( DX_SCREEN_FRONT ) ;
// 10000個四角形を描きます
for( i = 0 ; i < 10000 ; i ++ )
{
// ランダムな色を取得する『GetRand』使用
Cr = GetColor( GetRand( 255 ) , GetRand( 255 ) , GetRand( 255 ) ) ;
// ランダムな位置に四角形を描く
x = GetRand( 639 ) ;
y = GetRand( 479 ) ;
DrawBox( x , y , x + GetRand( 639 ) , y + GetRand( 479 ) , Cr , TRUE ) ;
}
WaitKey() ; // 結果を見るためにキー待ち(『WaitKey』を使用)
// 画面を初期化
ClearDrawScreen() ;
// 描画先画面を裏にする
SetDrawScreen( DX_SCREEN_BACK ) ;
// 10000個四角形を描きます
for( i = 0 ; i < 10000 ; i ++ )
{
// ランダムな色を取得する『GetRand』使用
Cr = GetColor( GetRand( 255 ) , GetRand( 255 ) , GetRand( 255 ) ) ;
// ランダムな位置に四角形を描く
x = GetRand( 639 ) ;
y = GetRand( 479 ) ;
DrawBox( x , y , x + GetRand( 639 ) , y + GetRand( 479 ) , Cr , TRUE ) ;
}
// 裏画面の内容を表画面に反映します
ScreenFlip() ;
WaitKey() ; // 結果を見るためにキー待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
| ||||||||||||
| ||||||||||||
|
サンプル 『SetDrawScreen』関数の解説を参照してください | ||||||||||||
| ||||||||||||
|
サンプル フルスクリーンアンチエイリアスを有効にした状態で DxChara.x を読み込み、画面に表示します
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int ModelHandle ;
// フルシーンアンチエイリアスを設定する
SetFullSceneAntiAliasingMode( 4, 2 ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 )
{
// エラーが発生したら直ちに終了
return -1 ;
}
// 3Dモデルの読み込み
ModelHandle = MV1LoadModel( "DxChara.x" ) ;
// 画面に映る位置に3Dモデルを移動
MV1SetPosition( ModelHandle, VGet( 320.0f, -300.0f, 600.0f ) ) ;
// 描画先を裏画面に設定
SetDrawScreen( DX_SCREEN_BACK ) ;
// 3Dモデルの描画
MV1DrawModel( ModelHandle ) ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
// キーの入力待ち
WaitKey() ;
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}
| ||||||||||||
| 動画関係 | ||||||||||||
| ||||||||||||
|
サンプル test.aviを等倍で再生する(ボタン押しキャンセルなし)
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
PlayMovie( "test.avi" , 1 , DX_MOVIEPLAYTYPE_NORMAL ) ;
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
| ||||||||||||
| ||||||||||||
|
サンプル ??.mpg を画面いっぱいに拡大して再生します。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int MovieGraphHandle ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// ムービーファイルをロードします。
MovieGraphHandle = LoadGraph( "??.mpg" ) ;
// ムービーを再生状態にします
PlayMovieToGraph( MovieGraphHandle ) ;
// ループ、GetMovieStateToGraph 関数はムービーの再生状態を得る関数です
// 戻り値が1の間は再生状態ですのでループを続けます
while( ProcessMessage() == 0 && GetMovieStateToGraph( MovieGraphHandle ) == 1 )
{
// ムービー映像を画面いっぱいに描画します
DrawExtendGraph( 0 , 0 , 640 , 480 , MovieGraphHandle , FALSE ) ;
// ウエイトをかけます、あまり速く描画すると画面がちらつくからです
WaitTimer( 17 ) ;
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
| ||||||||||||
| ||||||||||||
|
サンプル ありません | ||||||||||||
| ||||||||||||
|
サンプル ??.avi ファイルを5秒目から再生します。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int MovieGraphHandle ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// ムービーファイルをロードします。
MovieGraphHandle = LoadGraph( "??.avi" ) ;
// ムービーの再生位置を5秒目に変更します
SeekMovieToGraph( MovieGraphHandle , 5000 ) ;
// ムービーを再生状態にします
PlayMovieToGraph( MovieGraphHandle ) ;
// ループ、GetMovieStateToGraph 関数はムービーの再生状態を得る関数です
// 戻り値が1の間は再生状態ですのでループを続けます
while( ProcessMessage() == 0 && GetMovieStateToGraph( MovieGraphHandle ) == 1 )
{
// ムービー映像を画面いっぱいに描画します
DrawExtendGraph( 0 , 0 , 640 , 480 , MovieGraphHandle , FALSE ) ;
// ウエイトをかけます、あまり速く描画すると画面がちらつくからです
WaitTimer( 17 ) ;
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
| ||||||||||||
| ||||||||||||
|
サンプル ??.mpg ファイルを再生しながら、画面左上に再生時間を表示します。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int MovieGraphHandle ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// ムービーファイルをロードします。
MovieGraphHandle = LoadGraph( "??.mpg" ) ;
// ムービーを再生状態にします
PlayMovieToGraph( MovieGraphHandle ) ;
// 描画先の画面を裏画面に
SetDrawScreen( DX_SCREEN_BACK ) ;
// ループ、GetMovieStateToGraph 関数はムービーの再生状態を得る関数です
// 戻り値が1の間は再生状態ですのでループを続けます
while( ProcessMessage() == 0 && GetMovieStateToGraph( MovieGraphHandle ) == 1 )
{
// ムービー映像を画面いっぱいに描画します
DrawExtendGraph( 0 , 0 , 640 , 480 , MovieGraphHandle , FALSE ) ;
// 画面左上に再生時間を描画します
DrawFormatString( 0, 0, GetColor( 255,255,255 ), "Time:%d", TellMovieToGraph( MovieGraphHandle ) ) ;
// 裏画面の内容を表画面に反映します
ScreenFlip() ;
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
| ||||||||||||
| ||||||||||||
|
サンプル PlayMovieToGraph 関数のサンプルを参照して下さい | ||||||||||||
|
戻る | ||||||||||||