続「12.画像を動かす」の初期化
Posted: 2009年2月24日(火) 19:30
先ほど「12.画像を動かす」の初期化 のタイトルで質問したものです。
SCIさんのおかげで、二回目のプレイ時x=0からできるようになりましたが、
二回目のプレイ時、画面が明るく暗くなり次の画面にいけません。拙い文章
また続けて質問ですみませんが、どなたかよろしくお願いします。
環境 windoes vc2008 DXライブラリです。
SCIさんのおかげで、二回目のプレイ時x=0からできるようになりましたが、
二回目のプレイ時、画面が明るく暗くなり次の画面にいけません。拙い文章
また続けて質問ですみませんが、どなたかよろしくお願いします。
環境 windoes vc2008 DXライブラリです。
#include "DxLib.h"
int function_status=0,White,Yellow,G_Blue,Red,c;
char KeyBuf[ 256 ] ;
int PointX = 0;
void Opening(){
SetFontSize( 30 ) ; //サイズを20に変更
SetFontThickness( 1 ) ; //太さを1に変更
ChangeFont( "HGS創英角ポップ体" ) ; //HGS創英角ポップ体に変更
ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE );//アンチエイリアス&エッジ付きフォントに変更
DrawString(50,300," PUSH Z KEY",GetColor(255,255,255));
if(KeyBuf[KEY_INPUT_Z]==1)
function_status=1;
}
void Menu(){
LoadGraphScreen( PointX , 350 , "囚人.png" , TRUE );
Yellow = GetColor( 255 , 255 , 0 ) ; // 赤色の値を取得
G_Blue = GetColor( 128 , 128 , 128 ) ; // 緑と青の混合色の値を取得
White = GetColor( 255 , 255 , 255 ) ; // 白色の値を取得
DrawBox ( 400 , 200 , 440 , 700 , G_Blue , TRUE ) ; // 四角形を描画(塗りつぶし)
DrawCircle( 550 , 30 , 30 , Yellow , TRUE) ; // 円を描画(塗りつぶし)
DrawString( 0, 0, "level 1" , White); //文字列表示
PointX++;
if(PointX==290)
function_status=2;
}
void Danjon(){
LoadGraphScreen( PointX , 350 , "囚人.png" , TRUE );
if(c>=0 && c<256) //cが0~256の時
SetDrawBright( c , c , c ); //段々あかるく(c= 0->255)
if(c>=256 && c<400) //cが256~400の時
SetDrawBright( 255 , 255 , 255 ); //通常の明るさ
if(c>=400 && c<400+256) //cが400~400+256の時
SetDrawBright( 255-(c-400) , 255-(c-400) , 255-(c-400) );//段々暗く(c= 255->0)
DrawBox( 0 , 0 , 640 , 480 , White , TRUE) ; //画面全体に白い四角形を描画
c+=3;
PointX++;
if(PointX==410)
function_status=3;
}
void attack(){
SetFontSize( 30 ) ; //サイズを20に変更
SetFontThickness( 1 ) ; //太さを1に変更
ChangeFont( "HGS創英角ポップ体" ) ; //HGS創英角ポップ体に変更
ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE );//アンチエイリアス&エッジ付きフォントに変更
DrawString(50,300," PUSH X KEY",GetColor(255,255,255));
if(KeyBuf[KEY_INPUT_X]==1)
function_status=0;
PointX=0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; //ウィンドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
White = GetColor( 255 , 255 , 255 ) ; //色の取得
SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先を裏画面に設定
while( 1 ){
ClearDrawScreen(); // 裏画面のデータを全て削除
GetHitKeyStateAll( KeyBuf ) ; // すべてのキーの状態を得る
switch(function_status){
case 0:
Opening();
break;
case 1:
Menu();
break;
case 2:
Danjon();
break;
case 3:
attack();
break;
default:
DxLib_End() ; // DXライブラリ使用の終了処理
return 0;
break;
}
if( ProcessMessage() == -1 ) break ; //エラーが起きたら終了
ScreenFlip() ; // 裏画面データを表画面へ反映
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}