初期画面が表示されません…
Posted: 2008年4月09日(水) 17:50
はじめまして…
今RPG系のゲームをこのサイト様を参考に作っているのですが…
最初にフェードインフェードアウトを使って会社名を表示した後(自分の仮名)
初期画面が表示するようにしたのですが…表示されません。
色々試したのですがどうしてもなりません。
過去ログもすべてみましたが同じ様なのがありませんでした。
main.cpp内は以下のようになっております。
#include "test.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; //ウィンドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
feed();
startgamen();
}
そして初期画面用に作ったcppは以下になります。
大体ここのサイト様のコピペですが…
syokigamen.cpp内
#include "test.h"
void feed(){
int c=0,l=1;
SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先を裏画面に設定
while( c!=858 ){
ClearDrawScreen(); // 裏画面のデータを全て削除
if(c>=0 && c<256) //cが0~256の時
SetDrawBright( c , c , c ); //段々あかるく(c= 0->255)
if(c>=256 && c<600) //cが256~400の時
SetDrawBright( 255 , 255 , 255 ); //通常の明るさ
if(c>=600 && c<600+256) //cが400~400+256の時
SetDrawBright( 255-(c-600) , 255-(c-600) , 255-(c-600) );//段々暗く(c= 255->0)
LoadGraphScreen( 0 , 0 , "HatsuneMiku146.bmp" , TRUE) ; //画面全体に描画
c+=2; //cをカウントアップ
ScreenFlip() ; // 裏画面データを表画面へ反映
if( ProcessMessage() == -1 ) break ; //エラーが起きたら終了
}
}
void startgamen(){
int White , y=100; //y座標の宣言
int DownOshita=0,NewDown=0,OldDown=0,DownPusingCounter=0;//各種フラグの宣言
char KeyBuf[ 256 ] ; //キー入力状態を格納する変数
White = GetColor( 255 , 255 , 255 ) ;
SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先を裏画面に設定
while( 1 ){
ClearDrawScreen(); // 裏画面のデータを全て削除
GetHitKeyStateAll( KeyBuf ) ; // すべてのキーの状態を得る
if( KeyBuf[ KEY_INPUT_ESCAPE ] == 1 ) break ; // Escapeが押されたらブレイク
char_disp(White,y); // 文字を描画
if( KeyBuf[ KEY_INPUT_DOWN ] == 1 ) // 下キーが押されたら
NewDown=1; // 今押されている状態に
else // 押されていなかったら
NewDown=0; // 今押されていない状態に
if( OldDown==0 && NewDown==1 ) // 前回押されてなく、今回押されていたら
DownOshita=1; // たった今押された状態に
else // それ以外なら
DownOshita=0; // たったいま押されていない状態に
if( OldDown==1 && NewDown==1 ) // 前回も押され、今回も押されていたら
DownPusingCounter++; // 押しっぱなしカウンターを増加
else
DownPusingCounter=0;
if( DownOshita==1 || DownPusingCounter>30){ // たった今押したか、30カウンター以上押しっぱなしなら
if(DownPusingCounter>30) // 30カウンター以上押しっぱなしならカウンターを27へ
DownPusingCounter=27; // オートの場合4回に1回下に下がる。
y+=20;
if(y==260) // y座標が260なら(選択が一番下なら)
y=100; // 選択座標を一番上に
}
OldDown=NewDown; // 新しい入力情報を古い入力情報へ
if( ProcessMessage() == -1 ) break ; //エラーが起きたら終了
ScreenFlip() ; // 裏画面データを表画面へ反映
}
}
void char_disp(int White,int y){
DrawString( 150 , y , "■" , White );
DrawString( 170 , 100 , "NEW GAME" , White );
DrawString( 170 , 120 , "CONTINUE1" , White );
DrawString( 170 , 140 , "CONTINUE2" , White );
DrawString( 170 , 160 , "CONTINUE3" , White );
DrawString( 170 , 180 , "CONTINUE4" , White );
DrawString( 170 , 200 , "CONTINUE5" , White );
DrawString( 170 , 220 , "CONTINUE6" , White );
DrawString( 170 , 240 , "LOG OUT" , White );
}
どうかよろしくお願いします。
今RPG系のゲームをこのサイト様を参考に作っているのですが…
最初にフェードインフェードアウトを使って会社名を表示した後(自分の仮名)
初期画面が表示するようにしたのですが…表示されません。
色々試したのですがどうしてもなりません。
過去ログもすべてみましたが同じ様なのがありませんでした。
main.cpp内は以下のようになっております。
#include "test.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; //ウィンドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
feed();
startgamen();
}
そして初期画面用に作ったcppは以下になります。
大体ここのサイト様のコピペですが…
syokigamen.cpp内
#include "test.h"
void feed(){
int c=0,l=1;
SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先を裏画面に設定
while( c!=858 ){
ClearDrawScreen(); // 裏画面のデータを全て削除
if(c>=0 && c<256) //cが0~256の時
SetDrawBright( c , c , c ); //段々あかるく(c= 0->255)
if(c>=256 && c<600) //cが256~400の時
SetDrawBright( 255 , 255 , 255 ); //通常の明るさ
if(c>=600 && c<600+256) //cが400~400+256の時
SetDrawBright( 255-(c-600) , 255-(c-600) , 255-(c-600) );//段々暗く(c= 255->0)
LoadGraphScreen( 0 , 0 , "HatsuneMiku146.bmp" , TRUE) ; //画面全体に描画
c+=2; //cをカウントアップ
ScreenFlip() ; // 裏画面データを表画面へ反映
if( ProcessMessage() == -1 ) break ; //エラーが起きたら終了
}
}
void startgamen(){
int White , y=100; //y座標の宣言
int DownOshita=0,NewDown=0,OldDown=0,DownPusingCounter=0;//各種フラグの宣言
char KeyBuf[ 256 ] ; //キー入力状態を格納する変数
White = GetColor( 255 , 255 , 255 ) ;
SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先を裏画面に設定
while( 1 ){
ClearDrawScreen(); // 裏画面のデータを全て削除
GetHitKeyStateAll( KeyBuf ) ; // すべてのキーの状態を得る
if( KeyBuf[ KEY_INPUT_ESCAPE ] == 1 ) break ; // Escapeが押されたらブレイク
char_disp(White,y); // 文字を描画
if( KeyBuf[ KEY_INPUT_DOWN ] == 1 ) // 下キーが押されたら
NewDown=1; // 今押されている状態に
else // 押されていなかったら
NewDown=0; // 今押されていない状態に
if( OldDown==0 && NewDown==1 ) // 前回押されてなく、今回押されていたら
DownOshita=1; // たった今押された状態に
else // それ以外なら
DownOshita=0; // たったいま押されていない状態に
if( OldDown==1 && NewDown==1 ) // 前回も押され、今回も押されていたら
DownPusingCounter++; // 押しっぱなしカウンターを増加
else
DownPusingCounter=0;
if( DownOshita==1 || DownPusingCounter>30){ // たった今押したか、30カウンター以上押しっぱなしなら
if(DownPusingCounter>30) // 30カウンター以上押しっぱなしならカウンターを27へ
DownPusingCounter=27; // オートの場合4回に1回下に下がる。
y+=20;
if(y==260) // y座標が260なら(選択が一番下なら)
y=100; // 選択座標を一番上に
}
OldDown=NewDown; // 新しい入力情報を古い入力情報へ
if( ProcessMessage() == -1 ) break ; //エラーが起きたら終了
ScreenFlip() ; // 裏画面データを表画面へ反映
}
}
void char_disp(int White,int y){
DrawString( 150 , y , "■" , White );
DrawString( 170 , 100 , "NEW GAME" , White );
DrawString( 170 , 120 , "CONTINUE1" , White );
DrawString( 170 , 140 , "CONTINUE2" , White );
DrawString( 170 , 160 , "CONTINUE3" , White );
DrawString( 170 , 180 , "CONTINUE4" , White );
DrawString( 170 , 200 , "CONTINUE5" , White );
DrawString( 170 , 220 , "CONTINUE6" , White );
DrawString( 170 , 240 , "LOG OUT" , White );
}
どうかよろしくお願いします。