Cocos2d iphone 我是否需要取消勾选方法的计划?

Cocos2d iphone 我是否需要取消勾选方法的计划?,cocos2d-iphone,box2d,collision-detection,Cocos2d Iphone,Box2d,Collision Detection,我试图在cocos2d中模拟一个flick,每次用户触摸结束时我都需要创建一个球,但是我无法在tick方法中使球移动,并且我无法在每次不计划该方法的情况下销毁球(它是一个b2body) -(void)cctouchesend:(NSSet*)接触事件:(UIEvent*)事件 { touch=[触摸任何对象]; 位置=[触摸位置视图:[触摸视图]]; location=[[CCDirector sharedDirector]convertToGL:location]; 终点=位置; 力=b2Ve

我试图在cocos2d中模拟一个flick,每次用户触摸结束时我都需要创建一个球,但是我无法在tick方法中使球移动,并且我无法在每次不计划该方法的情况下销毁球(它是一个b2body)

-(void)cctouchesend:(NSSet*)接触事件:(UIEvent*)事件
{
touch=[触摸任何对象];
位置=[触摸位置视图:[触摸视图]];
location=[[CCDirector sharedDirector]convertToGL:location];
终点=位置;
力=b2Vec2(endPoint.x-startPoint.x,endPoint.y-startPoint.y);
如果((力x!=0)| |(力y!=0)){
如果(球数==0){
ball.position=起始点;
[self createBall];-我每次都在这里创建球
[self schedule:@selector(tick:)];-我在创建球后立即安排tick方法
[self scheduleOnce:@selector(kick)delay:0];-这是球将发射的唯一位置。由于某些原因,我无法让kick方法在其他任何地方工作
}
}
-(无效)踢
{
内速度=30;
浮动32设定速度=速度/sqrt(功率(力x,2)+功率(力y,2));
b2Vec2球速=b2Vec2(力x*设定速度,力y*设定速度);
_ballBody->SetLinearVelocity(球速);
}
-(无效)勾选:(ccTime)dt{
_世界->步骤(dt,10,10);
ballData=(u_桥CCSprite*)_ballBody->GetUserData();
ballData.position=ccp(_ballBody->GetPosition().x*PTM_比率,
_球体->获取位置().y*PTM_比率);
ballData.rotation=-1*CC_弧度到_度(_ballBody->GetAngle());
std::设置为删除;
//从联系人侦听器获取冲突
std::vector::iterator pos;
对于(pos=_contactListener->_contacts.begin();
pos!=\u contactListener->\u contacts.end();++pos){
MyContact contact=*位置;
bodyA=contact.fixtureA->GetBody();
bodyB=contact.fixtureB->GetBody();
如果(bodyA->GetUserData()!=NULL&&bodyB->GetUserData()!=NULL){
spriteA=(uu桥CCSprite*)bodyA->GetUserData();
spriteB=(uu桥CCSprite*)bodyB->GetUserData();
contactPositionX=spriteA.position.x;
contactPositionY=精神位置y;
if(spriteA.tag==kCurrentItem&&spriteB.tag==8)
{
NSLog(@“联系人”);
[自我清除儿童:spriteA清理:是];
[self-removeChild:spriteB cleanup:YES];
toDestroy.插入件(车身A);
toDestroy.插入件(车身B);
[self-unschedule:@selector(tick:)];(我每次都会取消tick方法的计划,这反过来会弄乱我的其他精灵。)
}
}
}
for(std::set::迭代器pos2=toDestroy.begin();pos2!=toDestroy.end();++pos2)
{
b2Body*body=*pos2;
_世界->毁灭身体(身体);
}
toDestroy.clear();
}

separate world step out进入一个不同的、总是计划好的方法?我稍后会尝试,但是不同的计划好的方法如何影响性能?我很可能会有一个临时方法来跟踪球发射时的位置,另一个用于检测球与大约40个精灵之间的碰撞(这些只有用于碰撞检测的B2Body)。这不会影响性能