#1
by たいがだよお » 6年前
ゲームを作りたいのですが音が正しくでません。
それと、メッセージが表示されているときにスペースキーを押すとそのメッセージが消え、新しいメッセージがでるようにしたいのですがこれで合ってますか・・?一応動くは動くんですけど。
いい方法があれば教えてください。
コード:
#include "DxLib.h"
int Key[256]; // キーが押されているフレーム数を格納する
// キーの入力状態を更新する
int gpUpdateKey(){
char tmpKey[256]; // 現在のキーの入力状態を格納する
GetHitKeyStateAll( tmpKey ); // 全てのキーの入力状態を得る
for( int i=0; i<256; i++ ){
if( tmpKey[i] != 0 ){ // i番のキーコードに対応するキーが押されていたら
Key[i]++; // 加算
} else { // 押されていなければ
Key[i] = 0; // 0にする
}
}
return 0;
}
#define PI 3.141592654
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定
int white = GetColor( 255, 255, 255 ); //白色文章の取得
int main; // 画像格納用ハンドル
int black; // 画像格納用ハンドル
int door, Count=0;
door = LoadSoundMem("サウンド/扉.ogg"); // サウンド/扉.oggをロードし、識別番号をHandleに格納
int bgm;
bgm = LoadSoundMem("サウンド/ダンジョン.ogg"); // サウンド/ダンジョン.oggをロードし、識別番号を格納
int foot;
foot = LoadSoundMem("サウンド/足音.ogg"); // サウンド/足音.oggをロードし、識別番号を格納
int OK;
OK = LoadSoundMem("サウンド/OK.ogg"); // サウンド/OK.oggをロードし、識別番号を格納
int wordX = 12 ; //文章のX軸
int wordY = 370; //文章のY軸
int nextword = 1; //次の文章に進む
int HP = 100;
int floor = 1;
int gord = 0;
PlaySoundMem( door, DX_PLAYTYPE_NORMAL ); // 効果音を再生する
main = LoadGraph( "画像/メイン.png" ); // 画像のロード
black = LoadGraph( "画像/移動.png" ); // 画像のロード
// while(裏画面を表画面に反映, メッセージ処理, 画面クリア)
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && gpUpdateKey()==0 ){
DrawRotaGraph( 318, 240, 0.58, 0.0, main, TRUE ); //画像の描画
PlaySoundMem( bgm, DX_PLAYTYPE_LOOP ); // 効果音を再生する
if( Key[KEY_INPUT_SPACE] == 1)
{
// スペースキーが押された瞬間なら
nextword ++;
}
DrawFormatString( 525, wordY, white, "HP:%d",HP); // 文字を描画する
DrawFormatString( 525, wordY + 25, white, "%dF",floor); // 文字を描画する
DrawFormatString( 525, wordY + 50, white, "%dgold",gord); // 文字を描画する
if(nextword == 1)
{
DrawFormatString( wordX, wordY, white, "運命の洞窟へようこそ..."); // 文字を描画する
}
else if(nextword == 2)
{
DrawFormatString( wordX , wordY, white, "あなたは一攫千金を夢見るトレジャーハンターです。"); // 文字を描画する
DrawFormatString( wordX , wordY+25, white, "大金を手にし、生きてここから脱出しましょう。"); // 文字を描画する
}
else if(nextword == 3)
{
DrawFormatString( wordX , wordY+50, white, "探索(スペースキー)"); // 文字を描画する
}
else if(nextword == 4)
{
PlaySoundMem( foot, DX_PLAYTYPE_NORMAL ); // 効果音を再生する
}
else if(nextword == 5)
{
DrawFormatString( wordX, wordY, white, "何もない"); // 文字を描画する
}
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
ゲームを作りたいのですが音が正しくでません。
それと、メッセージが表示されているときにスペースキーを押すとそのメッセージが消え、新しいメッセージがでるようにしたいのですがこれで合ってますか・・?一応動くは動くんですけど。
いい方法があれば教えてください。
[code]
#include "DxLib.h"
int Key[256]; // キーが押されているフレーム数を格納する
// キーの入力状態を更新する
int gpUpdateKey(){
char tmpKey[256]; // 現在のキーの入力状態を格納する
GetHitKeyStateAll( tmpKey ); // 全てのキーの入力状態を得る
for( int i=0; i<256; i++ ){
if( tmpKey[i] != 0 ){ // i番のキーコードに対応するキーが押されていたら
Key[i]++; // 加算
} else { // 押されていなければ
Key[i] = 0; // 0にする
}
}
return 0;
}
#define PI 3.141592654
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定
int white = GetColor( 255, 255, 255 ); //白色文章の取得
int main; // 画像格納用ハンドル
int black; // 画像格納用ハンドル
int door, Count=0;
door = LoadSoundMem("サウンド/扉.ogg"); // サウンド/扉.oggをロードし、識別番号をHandleに格納
int bgm;
bgm = LoadSoundMem("サウンド/ダンジョン.ogg"); // サウンド/ダンジョン.oggをロードし、識別番号を格納
int foot;
foot = LoadSoundMem("サウンド/足音.ogg"); // サウンド/足音.oggをロードし、識別番号を格納
int OK;
OK = LoadSoundMem("サウンド/OK.ogg"); // サウンド/OK.oggをロードし、識別番号を格納
int wordX = 12 ; //文章のX軸
int wordY = 370; //文章のY軸
int nextword = 1; //次の文章に進む
int HP = 100;
int floor = 1;
int gord = 0;
PlaySoundMem( door, DX_PLAYTYPE_NORMAL ); // 効果音を再生する
main = LoadGraph( "画像/メイン.png" ); // 画像のロード
black = LoadGraph( "画像/移動.png" ); // 画像のロード
// while(裏画面を表画面に反映, メッセージ処理, 画面クリア)
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && gpUpdateKey()==0 ){
DrawRotaGraph( 318, 240, 0.58, 0.0, main, TRUE ); //画像の描画
PlaySoundMem( bgm, DX_PLAYTYPE_LOOP ); // 効果音を再生する
if( Key[KEY_INPUT_SPACE] == 1)
{
// スペースキーが押された瞬間なら
nextword ++;
}
DrawFormatString( 525, wordY, white, "HP:%d",HP); // 文字を描画する
DrawFormatString( 525, wordY + 25, white, "%dF",floor); // 文字を描画する
DrawFormatString( 525, wordY + 50, white, "%dgold",gord); // 文字を描画する
if(nextword == 1)
{
DrawFormatString( wordX, wordY, white, "運命の洞窟へようこそ..."); // 文字を描画する
}
else if(nextword == 2)
{
DrawFormatString( wordX , wordY, white, "あなたは一攫千金を夢見るトレジャーハンターです。"); // 文字を描画する
DrawFormatString( wordX , wordY+25, white, "大金を手にし、生きてここから脱出しましょう。"); // 文字を描画する
}
else if(nextword == 3)
{
DrawFormatString( wordX , wordY+50, white, "探索(スペースキー)"); // 文字を描画する
}
else if(nextword == 4)
{
PlaySoundMem( foot, DX_PLAYTYPE_NORMAL ); // 効果音を再生する
}
else if(nextword == 5)
{
DrawFormatString( wordX, wordY, white, "何もない"); // 文字を描画する
}
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
[/code]