2014-03-04 138 views
0

如何直接拍攝精靈「墨水」?玩家Squiddy在屏幕上移動,我希望它每次都能直線上升。該代碼我迄今拍攝的墨,但它拍攝到某一點,屏幕上CCSprite方向Cococs2d 3.0

代碼

CGPoint targetPosition = ccp(self.contentSize.width/2, self.contentSize.height/2 + self.contentSize.height); 

ink = [CCSprite spriteWithImageNamed:@"MarioTube_Body_Rev.png"]; 
ink.position = Squiddy.position; 
ink.physicsBody = [CCPhysicsBody bodyWithCircleOfRadius:ink.contentSize.width/2.0f andCenter:ink.anchorPointInPoints]; 
ink.physicsBody.collisionGroup = @"playerG roup"; 
ink.physicsBody.collisionType = @"projectileCollision"; 
CCActionRotateBy *actionSpin = [CCActionRotateBy actionWithDuration:.5f angle:360]; 
[ink runAction:[CCActionRepeatForever actionWithAction:actionSpin]]; 
[_physicsWorld addChild:ink]; 

CCActionMoveTo *actionMove = [CCActionMoveTo actionWithDuration:.75f position:targetPosition]; 
CCActionRemove *actionRemove = [CCActionRemove action]; 
[ink runAction:[CCActionSequence actionWithArray:@[actionMove,actionRemove]]]; 
+0

正如我所看到的,墨水是一種物理身體。你爲什麼不嘗試應用一個force.physicsBody而不是運行一個動作? – mursang

+0

所以像這樣'ink.physicsBody.force = @「」;'? – Crazycriss

+0

是的,就是。看到我的回答下面 – mursang

回答

1

正如我以前說過,儘量力或衝動適用於ink.physicsBody:

CGPoint force = ccpMult(ccp(0,90), 600); //x=0, y=90, force=600 
[ink.physicsBody applyForce:force]; 

隨着x = 0的值,力量會增加。只要玩這些價值觀。 希望這有助於

+0

完美的工作,謝謝! – Crazycriss