タイトルでBGMが鳴らない現象が…お手上げです…

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
59221

タイトルでBGMが鳴らない現象が…お手上げです…

#1

投稿記事 by 59221 » 15年前

いつもお世話になっております。
48章でBGMを鳴らそうと取り組んでおります。
ゲームのステージでは鳴るのですが、
タイトル画面だとなぜか音がなりません…。
タイトル画面をstage=10;としています。
stage変数が10でload_bgm(int flag)関数のフラグが0だと鳴るようにしています。

main.cppはこのような構成です。
mainが長すぎるので…メインループの構成だけにしました。
while(ProcessLoop()==0){//メインループ

	if(game==0){//タイトル処理
		stage=10;  //sprintf(str,"bgm/%d_%d.ogg",stage,flag);タイトルは10ステージとして扱っています。
		何らかの処理{
			game=1;
		}
	}
	if(game==1){//ゲーム処理
		music_ini();
		switch(func_state){
			//龍神録のswitchの構成と同じです。
		}
	}
	bgm_main();//ここにbgm_main()を置いて、変数gameの値に関係なくbgmを制御しています。

        if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク
        ScreenFlip();//裏画面反映

}
わかりづらくてすみません…。
何度も試みましたがもうお手上げ状態です…。

ひよこ

Re:タイトルでBGMが鳴らない現象が…お手上げです…

#2

投稿記事 by ひよこ » 15年前

bgm_mainでif(stage_count==60){//はじまって60カウント後に再生と書いてありますが、
これではないのでしょうか?

59221

Re:タイトルでBGMが鳴らない現象が…お手上げです…

#3

投稿記事 by 59221 » 15年前

ひよこ様
無事鳴らすことができました!
本当にありがとうございます!

ゆたかちゃん

お助け下さい。

#4

投稿記事 by ゆたかちゃん » 15年前

課題が出たのですがサッパリなのでお答えいただけたら幸いです。


課題
・list05.cを参考にし、以下の仕様を満たすreport1.cを作成せよ

仕様1
・以下の構造体を利用した線形リストを用いること
struct player {
int no; // 背番号
char name[40]; // 選手名
float average; // 今シーズンの通算打率
struct player *next; // 次の選手データへのポインタ
};

仕様2
・選手データを登録する以下の関数を作成すること
struct player*
add_player(struct player *data, int no, char *name, float average)

仕様3
・背番号および選手名をキーとして線形探索する以下の関数の作成すること
struct player* search_by_no(struct player *data, int no)
struct player* search_by_name(struct player *data, char *name)

仕様4
・最低10名の選手データを登録すること。選手一覧はホークスでなくてもよい。(自分の好きなチームで良い)。今シーズンの通算打率はWEBを用いて調べること。


以下list05です。

#include <stdio.h>

struct player{
int no;
char *name;
};

char *linear_search(struct player data[/url],int n,int key);

int main()
{
int n = 10;
struct player data[/url]={
{28,"大隣憲司"},
{49,"オーティズ"},
{52,"川崎宗則"},
{9, "小久保裕紀"},
{47,"杉内俊哉"},
{50,"摂津正"},
{54,"ホールトン"},
{46,"本多雄一"},
{3, "松中信彦"},
{14,"馬原孝浩"}};

int key;
char *result;

printf("背番号を入力してください。¥n");
scanf("%d",&key);

result = linear_search(data,n,key);

if(result!=NULL){
printf("背番号%d番は%s選手です。¥n",key,result);
}else{
printf("背番号%d番の選手はいません。¥n",key);
}
return 0;
}

char*linear_search(struct player data[/url],int n,int key)
{
int i;

for(i=0;i<n;i++){
if(data.no == key){
return data.name;
}
}
return NULL;
}

Mist

Re:お助け下さい。

#5

投稿記事 by Mist » 15年前

http://pc12.2ch.net/test/read.cgi/tech/1255709298

自力でやる気がないならこちらへ行ってください。
ただし、テンプレぐらい読まないと回答してもらえませんけどね。

多少なりともやる気があるのであれば、規約を熟読し規約に従って再度質問してください。

Korsakov

Re:お助け下さい。

#6

投稿記事 by Korsakov » 15年前

取り敢えずmain()を完成させてみてください。
動くかどうかは知りませんが。
#include <stdio.h>
#include <string.h>

/***********************************************************
*                   選手データ構造体
************************************************************/
struct player
{
    int no;
    char name[40];
    float average;
    struct player *next;
};

/***********************************************************
*                       関数宣言
************************************************************/
//  登録
struct player* add_player
    (struct player *data, int no, char *name, float average);
//  検索(数値)
struct player* search_by_no(struct player *data, int no);
//  検索(文字列)
struct player* search_by_name(struct player *data, char *name);

/***********************************************************
*           アプリケーションエントリポイント
************************************************************/
int main(int argc,char *argv[/url])
{
    char name[40] = "";
    int no = 0;
    struct player *result;
    
#if 0
    
    //......
    
    printf("背番号を入力してください。¥n");
    scanf("%d",&no);

    result = search_by_no(data,no);

    if(result!=NULL){
    printf("背番号%d番は%s選手です。¥n",no,result->name);
    }else{
    printf("背番号%d番の選手はいません。¥n",no);
    } 
    
    
    
    
    printf("名前を入力してください。¥n");
    scanf("%d",&name);

    result = search_by_name(data,name);

    if(result!=NULL){
    printf("%s選手の背番号は%d番です。¥n",name,result->no);
    }else{
    printf("%s選手はいません。¥n",name);
    } 
#endif
    return 0;
}

/***********************************************************
*                       関数定義
************************************************************/
//  登録
struct player* add_player
    (struct player *data, int no, char *name, float average)
{
    struct player *tmp = (struct player*)malloc(sizeof(struct player));
    
    if(tmp == NULL)
        return NULL;
    
    memset(tmp,0,sizeof(struct player));
    
    tmp->no = no;
    strncpy(name,sizeof(tmp->name)-1,name);
    tmp->average = average;
    
    if(data == NULL)    data = tmp; else
    data->next = tmp;
}

//  検索(数値)
struct player* search_by_no(struct player *data, int no)
{
    struct player *tmp = data;
    while(tmp != NULL)
    {
        if(tmp->no == no)
            return tmp;
        
        tmp = tmp->next;
    }
    
    return NULL;
}

//  検索(文字列)
struct player* search_by_name(struct player *data, char *name)
{
    struct player *tmp = data;
    while(tmp != NULL)
    {
        if( !strncmp(tmp->name,sizeof(tmp->name),name) )
            return tmp;
        
        tmp = tmp->next;
    }
    
    return NULL;
}

/***********************************************************
*                           END
************************************************************/

ゆたかちゃん

Re:お助け下さい。

#7

投稿記事 by ゆたかちゃん » 15年前

丁寧なご回答ありがとうございます!
やってみますね。
助かりました!

閉鎖

“C言語何でも質問掲示板” へ戻る