はじめまして…
今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 );
}
どうかよろしくお願いします。
初期画面が表示されません…
Re:初期画面が表示されません…
ふーん。
で、結局質問は何なのでしょう?質問と思われる文章が見当たりませぬ。
まあ、初期画面が表示されないと愚痴をこぼされているので、何が原因なのか見て欲しいと言うことなのでしょうが・・・。
と、最近黒いやそです(笑)
最初のステップのフェードインフェードアウト処理(会社名の表示部分?)は正常に表示されていましたか?
真っ暗
↓
だんだん明るく
↓
明るさMAX
↓
だんだん暗く
↓
真っ暗
次に初期画面へ
ESCAPEが押されていなければ文字表示
という流だと思います。
ちょっと思ったのは、フェードアウト終了後、画面の明るさ設定値はどのような状態になっているのでしょうか?
初期画面表示処理ルーチンで、表示前に一度明るさを設定しなおしておくことをオススメします。
で、結局質問は何なのでしょう?質問と思われる文章が見当たりませぬ。
まあ、初期画面が表示されないと愚痴をこぼされているので、何が原因なのか見て欲しいと言うことなのでしょうが・・・。
と、最近黒いやそです(笑)
最初のステップのフェードインフェードアウト処理(会社名の表示部分?)は正常に表示されていましたか?
真っ暗
↓
だんだん明るく
↓
明るさMAX
↓
だんだん暗く
↓
真っ暗
次に初期画面へ
ESCAPEが押されていなければ文字表示
という流だと思います。
ちょっと思ったのは、フェードアウト終了後、画面の明るさ設定値はどのような状態になっているのでしょうか?
初期画面表示処理ルーチンで、表示前に一度明るさを設定しなおしておくことをオススメします。
Re:初期画面が表示されません…
test.hはDxLib.hが含まれていると思っていいのですね?
まず、画面消去や裏画面反映関数があちこちに書いてあるので、読みにくいプログラムになってしまっています。
後からの管理もしにくくなってしまうでしょう。
なので、これらの関数はメイン関数に一度だけ書いてください。
フラグを使って処理を分岐させるのが適切でしょう。
http://dixq.net/g/#34
こちらに例がありますので、参考にしてください。
これらは更に、計算部、登録部、描画部などにわけていくのがいいと思います。
今後のことを考えて、まず、キレイに整理してみることをおススメします。
まず、画面消去や裏画面反映関数があちこちに書いてあるので、読みにくいプログラムになってしまっています。
後からの管理もしにくくなってしまうでしょう。
なので、これらの関数はメイン関数に一度だけ書いてください。
フラグを使って処理を分岐させるのが適切でしょう。
http://dixq.net/g/#34
こちらに例がありますので、参考にしてください。
これらは更に、計算部、登録部、描画部などにわけていくのがいいと思います。
今後のことを考えて、まず、キレイに整理してみることをおススメします。
Re:初期画面が表示されません…
ありがとうございます。
やそさんの言ったように画面の明るさを設定しなおしたらなりました!
全然気づきませんでした…ありがとうございます。
又これからも質問することがあるかと思いますがよろしくお願いします。
キレイに整理は…がんばります!
やそさんの言ったように画面の明るさを設定しなおしたらなりました!
全然気づきませんでした…ありがとうございます。
又これからも質問することがあるかと思いますがよろしくお願いします。
キレイに整理は…がんばります!