ブレイキン・ゲームス -3ページ目

ハーレムシェイクやってみました☆

にわかに話題となっている、ハーレムシェイクに、ダンス仲間で挑戦してみました!



技術的なお話。OpenALの利用で注意点。

久々の更新で、
たまには技術っぽいメモ風。

OpenALを利用する場合に、サンプルあたりから
コード引っ張ってきたりしてたんだけど、
Analysかけると引っかかる部分がある。

return data;

のとこが、

Undefined or garbage value returned to caller

となる。
これは、
GetOpenALAudioData
の一連の中で、
if (err) {
goto Exit;
}
というようにエラーでExitに
飛ぶ箇所が何度もあるんだけど、
dataが定義されてないまま
Exitの以下の
return data;
が呼ばれてますということ。

つまり、
具体的には、

void* GetOpenALAudioData(
CFURLRef fileURL, ALsizei* dataSize, ALenum* dataFormat, ALsizei *sampleRate, bool *loaded)
{
OSStatus err;
UInt32 size;
......

を、

void* GetOpenALAudioData(
CFURLRef fileURL, ALsizei* dataSize, ALenum* dataFormat, ALsizei *sampleRate, bool *loaded)
{
void* data = nil;
OSStatus err;
UInt32 size;
......


に変える。
つまり、
下の方にあった void* data;
をExitがif文で呼ばれる以前に定義して、
さらにnilを初期値で入れて上げるのだ。
(元々下にあった void* data;を上にカット&ペーストする感じ)

以上!

PixelSlime2!!

PixelSlime2(ピクセルスライム2)の宣伝忘れてたw

$ブレイキン・ゲームス

無料で遊べますよ☆