これは私が問題を抱えているビットコードです:
int pressedKey = event.getNativeKeyCode();
for (int i=0; i <= AllTriggerPads.size() ;i++) {
if (AllTriggerPads[i]->get_key() == pressedKey){
AllTriggerPads[i]->mBufferPlayerNode->start();
}
}
エラーget_key()
が発生しています。EXC_BAD_ACCESS (Code=1, ...)
参照に問題があるようです。mouseDown と fileDrop 関数でほぼ同じコードを使用しています。
for (int i=0; i < AllTriggerPads.size() ; i++) {
if (AllTriggerPads[i]->mRect.contains(event.getPos())) {
AllTriggerPads[i]->mBufferPlayerNode->start();
}
}
これはうまくいきます!
すっごく、AllTriggerPads ベクトル (obj ポインターの) を正しく使用していないと思います。だから私は使用できますAllTriggerPads[i]->mRect.contains(event.getPos())
が、使用できませんAllTriggerPads[i]->get_key()
。AllTriggerPads[i]->key
そして、試してみたところ、値自体にアクセスできAllTriggerPads.at(i)
ませんでしたが、範囲外のエラーが発生し、さらに不思議になりました。
AlltriggerPads は次のように初期化されました
vector<TriggerPad*> AllTriggerPads;
では、キー メンバーにアクセスするにはどうすればよいでしょうか。