1 / 16

ゲームプログラミング

第6回:音を鳴らそう!  (効果音とBGMの再生). ゲームプログラミング. 音ファイルの種類. wavファイル=音の波形データが入っている midiファイル=楽譜データ  (音色、音程、鳴らすタイミング)が入っている 携帯では主にmidiを変換したファイルを使う。   docomo→mldファイル   au→pmd,mmfファイル(機種によって異なる)   vodafone→spf,mmfファイル. gameCanvasでの音の扱い. gameCanvasでは、音を二つに分けて扱っている。 効果音 一度しかならない 同時に多数の効果音が鳴りえる BGM

mare
Download Presentation

ゲームプログラミング

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第6回:音を鳴らそう!  (効果音とBGMの再生) 2008年度ゲームプログラミング ゲームプログラミング

  2. 2008年度ゲームプログラミング 音ファイルの種類 wavファイル=音の波形データが入っている midiファイル=楽譜データ  (音色、音程、鳴らすタイミング)が入っている 携帯では主にmidiを変換したファイルを使う。   docomo→mldファイル   au→pmd,mmfファイル(機種によって異なる)   vodafone→spf,mmfファイル

  3. 2008年度ゲームプログラミング gameCanvasでの音の扱い gameCanvasでは、音を二つに分けて扱っている。 効果音 一度しかならない 同時に多数の効果音が鳴りえる BGM ループで鳴り続ける 排他的で、BGM 0とBGM 1が同時になることはない *実は効果音をループで鳴らしたり、BGMを複数鳴らすことは出来ます。ただ、ややこしいので説明を省きます

  4. 2008年度ゲームプログラミング 効果音を鳴らす準備 効果音データの準備   サンプルデータのsnd0.mldをresフォルダへ。 ファイル読み込み   gameCanvasがsndX.mldをXが0から順に読み込んでいく。sndX.mldはgameCanvasでは効果音として読み込まれる。BGMとして読み込みたい場合は、後ほど紹介

  5. 2008年度ゲームプログラミング ボールが跳ね返った時に鳴らす 跳ね返り処理のところで、   gc.playSe(効果音番号);  を呼ぶと、効果音が1回だけ鳴る。 効果音番号は、0を入れるとsnd0.mldについての操作になる。 効果音を止めたい時は   gc.stopSe();

  6. 2008年度ゲームプログラミング 複数の効果音を鳴らす 音番号を0にするとsnd0.mldが再生される。   snd1.mldやsnd2.mldを鳴らしたいときは   resフォルダにファイルを入れれば使える。   ただし途中で番号が途切れないように… gc.playSe(1);   →snd1.mldを再生

  7. 2008年度ゲームプログラミング BGMの準備(1) まずは、マシン内を検索してmidiファイルを探そう(「*.MID」で検索) なかったらインターネットから拾ってこよう ツールを使ってmidiデータをmldに変換。

  8. 2008年度ゲームプログラミング BGMの準備(2) 効果音は sndX.mldだったが、BGMはbgmX.mldを読み込む なので変換したmldをbgmX.mld(Xは数値)に改名 あとはgameCanvasが bgm0.mldから順番にBGMとして読み込んでくれる。

  9. 2008年度ゲームプログラミング BGMを再生してみよう。 効果音の時はplaySeでしたが、BGMの時は命令が変わります。   gc.playBgm(BGM番号); ボリューム調節もできる。   gc.changeBgmVolume(音量);   音量は、0~100の間で指定 実は効果音も同様にボリューム調整できるgc.changeSeVolume(音量);

  10. 2008年度ゲームプログラミング ゲームのBGMを流す initGameの中で   ・BGMを再生する命令  とすると、ゲームを開始する度に曲の最初から再生する。

  11. 2008年度ゲームプログラミング 初回起動時にinitGameを呼ぶ コンストラクタを抜け出た後で音データが読み込まれるので、コンストラクタ内での再生命令は無視される。  →最初のupdateGameで初期化されるように変更   int gameState = -1; //未初期化   updateGame内で   if(gameState== -1 ){     initGame();//未初期化だったら初期化   } 

  12. 2008年度ゲームプログラミング ボールを20回受けたらクリアー ボールを受けた回数を保存する変数が必要   int p; 跳ね返り処理のところで、回数を1増やす   p++; 回数が20以上になったらgameStateを2にする。  →ゲーム中断   if(pが20以上だったら){ gameStateを2に;}

  13. 2008年度ゲームプログラミング クリアー時の効果音と画面表示 gameStateを2にした時に、効果音を鳴らす命令を呼ぶ。(gc.playSe) drawGame()の中でgameStateに応じて  メッセージを表示  if(gameState==1)ゲームオーバーと表示  if(gameState==2)ゲームクリアーと表示

  14. 2008年度ゲームプログラミング 跳ね返り方を変える(1) 常に跳ね返り方が一定   →ひたすら受身なゲーム ボールの跳ね返り方を変える   →プレイヤーがボールを操作できる   →戦略的に遊べる ボールをキャッチする機能などでも、  プレイヤーによるボール操作は可能

  15. 2008年度ゲームプログラミング 跳ね返り方を変える(2) 動いているかどうかの判断は操作方法に   よって異なる   bardxを使用    →bardxが0でなかったら   bardxを使っていない    →当たった瞬間にキーが押されていたら     →キーの状態を保存する機能が必要

  16. 2008年度ゲームプログラミング 跳ね返り方を変える(3) 処理の流れ   if(バーをボールで跳ね返す条件){     dy=-dy;  // 通常の跳ね返り処理     if(バーが右に動いている)dx++;     if(バーが左に動いている)dx--;   } ゲームが簡単になり過ぎないよう、調整が必要(上の壁ではランダムで跳ね返る、等)

More Related