我是Cocos2D的新手,任何人都可以告诉我如何从顶部落下并落在iPad底部,当用户倾斜iPad或触摸树叶时,树叶应该做出相应的响应。应该类似于 alice wonderland lite应用页面编号13动画 。 我发布了我的代码但是它的行为并不完全符合我的要求。每当我在精灵附近触摸时,所有的精灵都会以令人难以置信的力量移动......它们实际上会移动到我触碰的地方。当然,我不是唯一一个以前实现过这个的人吗?谁能引导我朝着正确的方向前进?
静态浮点数hw = 639.0 / 2.0,hh = 479.0 / 2.0; static cpVect mouseToSpace(cpVect pos,CGSize size) { 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; }
(void)ccTouchesBegan:(NSSet *)触及withEvent:(UIEvent *)event { UITouch * myTouch = [触及anyObject]; CGPoint location = [myTouch locationInView:[myTouch view]]; location = [[CCDirector sharedDirector] convertToGL:location];
cpVect point = mouseToSpace([myTouch locationInView:[myTouch view]],[myTouch view] .bounds.size); mousePoint = point;
cpShape * shape = cpSpacePointQueryFirst(space,point,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 *)触及withEvent:(UIEvent *)event { UITouch * myTouch = [触及anyObject]; CGPoint location = [myTouch locationInView:[myTouch view]]; location = [[CCDirector sharedDirector] convertToGL:location];
mousePoint = mouseToSpace([myTouch locationInView:[myTouch view]],[myTouch view] .bounds.size); }
(void)ccTouchesEnded:(NSSet *)触及withEvent:(UIEvent *)event { [self touchesCancelled:触及withEvent:event]; }
(void)touchesCancelled:(NSSet *)触及withEvent:(UIEvent *)event { cpSpaceRemoveConstraint(space,mouseJoint); cpConstraintFree(mouseJoint); mouseJoint = nil; }
任何人请指导我或发布代码,我迫切需要它。
等待您宝贵的建议和任何代码。
提前致谢。
希瓦。
答案 0 :(得分:0)
Cocos2d附带了帮助您入门的项目。其中之一是“Cocos2d with Box2D”。这个项目启动你的场景,使用Box2D物理,在顶部产生一大堆落到屏幕底部的盒子。如果我没记错的话,当你倾斜时它也会移动它们。
查看该项目并根据您的需求进行调整。
在开始iPhone游戏开发时,This blog是我非常宝贵的首选资源。我建议你看看。