VC++2008ExpressEditionを使用しています。
タイトル画面で
はじめから
つづきから
おわる
を選択するというプログラムを書きました。
これは実行した時
はじめからが黄色で表示されており、
つづきからとおわるは白で表示されています。
それで方向キー↓を押すと 次はつづきからが黄色になり
はじめからとおわるは、白になる というものです。
そして方向キーを押すとサウンドがなるように考えました。
エラーはでませんでした。
しかし、方向キーの↑キーや↓キーを押しても
画像が全く変化せず、音もなりませんでした。
どなたかアドヴァイスいただければありがたいです。
どうかよろしくお願いいたします。
#include "DxLib.h"
int GetHitKeyStateAll_2(int KeyStateBuf[]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key[i]==1) KeyStateBuf[i]++;
else KeyStateBuf[i]=0;
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; //ウィンドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
int SERECT[6];
char Key[256];
int point;
SetDrawScreen( DX_SCREEN_BACK ) ; //描画先を裏画面に設定
LoadDivGraph( "title/titleserect.png" , 6 , 1 , 6 , 130 , 25 , SERECT );//画像を分割してSERECT配列に保存
//画像表示
DrawGraph( 450 , 200 , SERECT[3] , TRUE ) ;//はじめから(黄色)の画像を描画
DrawGraph( 450 , 230 , SERECT[1] , TRUE ) ;//つづきから(白)の画像を描画
DrawGraph( 450 , 260 , SERECT[2] , TRUE ) ;//おわり(白)の画像を描画
// キー入力処理
point == 0;
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
//↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない
switch(point){
case 0:
ClearDrawScreen(); // 画面に描画したデータを消す
DrawGraph( 450 , 200 , SERECT[3] , TRUE ) ;//はじめから(黄色)の画像を描画
DrawGraph( 450 , 230 , SERECT[1] , TRUE ) ;//つづきから(白)の画像を描画
DrawGraph( 450 , 260 , SERECT[2] , TRUE ) ;//おわり(白)の画像を描画
break;
case 1:
ClearDrawScreen(); // 画面に描画したデータを消す
DrawGraph( 450 , 200 , SERECT[0] , TRUE ) ;//はじめから(白)の画像を描画
DrawGraph( 450 , 230 , SERECT[4] , TRUE ) ;//つづきから(黄色)の画像を描画
DrawGraph( 450 , 260 , SERECT[2] , TRUE ) ;//おわり(白)の画像を描画
break;
case 2:
ClearDrawScreen(); // 画面に描画したデータを消す
DrawGraph( 450 , 200 , SERECT[0] , TRUE ) ;//はじめから(白)の画像を描画
DrawGraph( 450 , 230 , SERECT[1] , TRUE ) ;//つづきから(白)の画像を描画
DrawGraph( 450 , 260 , SERECT[5] , TRUE ) ;//おわり(黄色)の画像を描画
break;
}
if( Key[KEY_INPUT_DOWN]==1 ||( Key[KEY_INPUT_DOWN]%5==0 && Key[KEY_INPUT_DOWN]>30)){
// たった今押したか、30カウンター以上押しっぱなしかつ5回に一度
PlaySound( "title/serect.wav" , DX_PLAYTYPE_BACK ) ;
point++;
if(point>=3)
point == 0;
}
if( Key[KEY_INPUT_UP]==1 ||( Key[KEY_INPUT_UP]%5==0 && Key[KEY_INPUT_UP]>30)){
// たった今押したか、30カウンター以上押しっぱなしかつ5回に一度
PlaySound( "title/serect.wav" , DX_PLAYTYPE_BACK ) ;
point--;
if(point<=-1)
point == 2;
}
// キー入力待ち
WaitKey() ;
// ループから抜ける
break ;
}
ScreenFlip();
}
WaitKey(); //何かキー入力があるまで待つ
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
/////画像//////
画像の名前
titleserect.png
titleフォルダに入っています。
サウンドもタイトルフォルダに入っています。
サイズ
ワイド:130
ハイト:150
-----------------
|はじめから(白) |[0]
|つづきから(白) |[1]
|おわる(白) |[2]
|はじめから(黄色)|[3]
|つづきから(黄色)|[4]
|おわる(黄色) |[5]
------------------