Листья падают, анимация и перетаскивание вместе с пальцем - PullRequest
0 голосов
/ 12 ноября 2010

Я новичок в Cocos2D. Может ли кто-нибудь сказать мне, как мы можем сделать, чтобы листья падали сверху и располагались у основания iPad, когда пользователь наклоняет iPad или касается листьев, листья должны реагировать соответствующим образом. должно быть похоже на анимацию страницы приложения alice wonderland lite номер 13 . Я публикую свой код, но он ведет себя не так, как я хочу. Всякий раз, когда я прикасаюсь к спрайту, все спрайты движутся с невероятной силой ... они буквально уходят с того места, где я прикасаюсь. Конечно, я не единственный, кто реализовал это раньше? Кто-нибудь может привести меня в правильном направлении?

статическое значение с плавающей запятой hw = 639,0 / 2,0, hh = 479,0 / 2,0; статическое cpVect mouseToSpace (cpVect pos, размер CGSize) { cpVect v = cpvsub (cpvmult (cpv (pos.y / size.height, pos.x / size.width), 2.0f), cpv (1.0f, 1.0f)); v = cpv (v.x * hw, v.y * hh); // printf ("% s \ n", cpvstr (v)); возврат v; }

определить GRABABLE_MASK_BIT (1 << 31) </h1> (void) ccTouchesBegan: (NSSet *) затрагивает событие EventE: (UIEvent *) { UITouch * myTouch = [касается любого объекта]; CGPoint location = [myTouch locationInView: [myTouch view]]; location = [[CCDirector sharedDirector] convertToGL: location]; cpVect point = mouseToSpace ([myTouch locationInView: [myTouch view]], [myTouch view] .bounds.size); mousePoint = точка; cpShape * shape = cpSpacePointQueryFirst (пробел, точка, GRABABLE_MASK_BIT, 0); if (shape) { cpBody * body = shape-> body; mouseJoint = cpPivotJointNew2 (mouseBody, body, cpvzero, cpBodyWorld2Local (body, point)); mouseJoint-> maxForce = 50000.0f; mouseJoint-> biasCoef = 0.15f; cpSpaceAddConstraint (space, mouseJoint); } } (void) ccTouchesMoved: (NSSet *) затрагивает событие Event: (UIEvent *) { UITouch * myTouch = [касается любого объекта]; CGPoint location = [myTouch locationInView: [myTouch view]]; location = [[CCDirector sharedDirector] convertToGL: местоположение]; mousePoint = mouseToSpace ([myTouch locationInView: [myTouch view]], [myTouch view] .bounds.size); } (void) ccTouchesEnded: (NSSet *) касается событияEE:: (UIEvent *) { [self touchesCancelled: затрагивает событиеEvent: событие]; } (void) touchesCancelled: (NSSet *) затрагивает событиеEE:: (UIEvent *) { cpSpaceRemoveConstraint (space, mouseJoint); cpConstraintFree (mouseJoint); mouseJoint = nil; } Любой, пожалуйста, направьте меня или напишите код, он мне нужен срочно. Жду ваших ценных предложений и любого кода. Заранее спасибо. Шива.

1 Ответ

0 голосов
/ 12 ноября 2010

Cocos2d поставляется с проектами, чтобы вы начали. Одним из них является "Cocos2d с Box2D". Этот проект начинает вас со сцены, которая порождает множество ящиков сверху, которые падают в нижнюю часть экрана, используя физику Box2D. Если я правильно помню, он также сдвигает их при наклоне.

Посмотрите на этот проект и адаптируйте его под свои нужды.

Этот блог был моим бесценным ресурсом, когда я начинал с разработки игр для iPhone. Я предлагаю вам прочитать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...