開発メモ。
shapeからbodyは参照可能だけど、bodyからshapeの参照が出来ない気がしてます。
情報が少ないのでみんなどうやってるのかなと疑問ですのでエントリーを投下。
ちなみにcocos2dのサンプルでは、shapeが衝突した際にshapeを削除リストに追加し、メインループで削除リストに入っているshapeをspaceから削除してました。
もちろんこれでも良いのですが、ポリゴンの場合にちょっと面倒です。衝突したshapeの仲間(同じbody)の奴は一度に削除したいです。
というわけで、まずは自分がやっている方法。
- (void)removeBodyShape:(cpSpace*)space body:(cpBody*)body
{
cpShape *shape = body->shapeList_private;
while(shape){
cpShape *next = shape->next_private;
cpSpaceRemoveShape(space, shape);
shape = next;
}
}
という感じ。privateなので、本当はアクセスして欲しくないのだと思います。
上記のようにObjectiveCで書いてて、CocosBuilderで書いてるjs側から呼べるようにして使ってます。
今のところエラーは出てないしメモリ的に心配ではあるけどどうなんだろう。
誰か良い方法を知っていたら教えて下さい。
- 関連記事
-