ページ 1 / 1
タイトルでBGMが鳴らない現象が…お手上げです…
Posted: 2009年10月31日(土) 09:59
by 59221
いつもお世話になっております。
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が鳴らない現象が…お手上げです…
Posted: 2009年10月31日(土) 11:52
by ひよこ
bgm_mainでif(stage_count==60){//はじまって60カウント後に再生と書いてありますが、
これではないのでしょうか?
Re:タイトルでBGMが鳴らない現象が…お手上げです…
Posted: 2009年11月01日(日) 11:18
by 59221
ひよこ様
無事鳴らすことができました!
本当にありがとうございます!
お助け下さい。
Posted: 2009年11月12日(木) 17:12
by ゆたかちゃん
課題が出たのですがサッパリなのでお答えいただけたら幸いです。
課題
・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;
}
Re:お助け下さい。
Posted: 2009年11月12日(木) 17:24
by Mist
http://pc12.2ch.net/test/read.cgi/tech/1255709298
自力でやる気がないならこちらへ行ってください。
ただし、テンプレぐらい読まないと回答してもらえませんけどね。
多少なりともやる気があるのであれば、規約を熟読し規約に従って再度質問してください。
Re:お助け下さい。
Posted: 2009年11月13日(金) 00:13
by Korsakov
取り敢えず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:お助け下さい。
Posted: 2009年11月13日(金) 13:54
by ゆたかちゃん
丁寧なご回答ありがとうございます!
やってみますね。
助かりました!