2013-03-09 113 views
1

我想爲iOS做一個應用程序,我在cocos2d中有一些專業知識。我搜索了很多,但是我發現所有的東西都是使用webkit的這個動畫的CSS實現,我不知道任何其他語言C,Objective C,VHDL。動畫旋轉的精靈環

1-我如何在cocos2d或任何其他FrameWork中製作此動畫。

2 - 如何使它交互(觸摸)。

我可以讓它互動,但我需要指示如何使這個動畫。我想到的是手動縮放和移動每個精靈,並改變那裏的不透明度,創造這種效果,但它會花費大量的時間。

這裏是與動畫鏈接

https://www.webkit.org/blog-files/3d-transforms/morphing-cubes.html

+0

我沒有足夠的積分,所以我不能上傳圖片。 – 2013-03-09 11:54:49

+0

我非常懷疑你可以用cocos2d或其他任何2d框架來做到這一點。 – YvesLeBorg 2013-03-09 13:57:14

+0

然後你推薦什麼? – 2013-03-09 14:54:28

回答

1

我這樣做使用cocos3d,使用demomashup作爲我的出發點,然後我看着它的「skinnyrunner」的方法,在這裏修改的立方體模方法是我的代碼

// Create the camera, place it back a bit, and add it to the scene 
CC3Camera* cam = [CC3Camera nodeWithName: @"Camera"]; 
cam.location = cc3v(0.0, 0.0, 200.0); 
[self addChild: cam]; 

// Create a light, place it back and to the left at a specific 
// position (not just directional lighting), and add it to the scene 
CC3Light* lamp = [CC3Light nodeWithName: @"Lamp"]; 
lamp.location = cc3v(-110.0, 110.0, 50.0); 
lamp.isDirectionalOnly = NO; 
[cam addChild: lamp]; 


// Fetch the die cube model from the POD file. 
CC3PODResourceNode* podRezNode = [CC3PODResourceNode nodeFromFile: kDieCubePODFile]; 
CC3Node* podDieCube = [podRezNode getNodeNamed: kDieCubePODName]; 

// We want this node to be a SpinningNode class instead of the CC3PODNode class that 
// is loaded from the POD file. We can swap it out by creating a copy of the loaded 
// POD node, using a different node class as the base. 
dieCube = [[podDieCube copyWithName: kDieCubeName 
          asClass: [SpinningNode class]] autorelease]; 

// Now set some properties, including the friction, and add the die cube to the scene 


CCSprite  * markerSprite = [CCSprite spriteWithFile: @"IMG1.PNG"]; 
marker = [CC3Billboard nodeWithName: @"TouchSpot" withBillboard: markerSprite]; 


CCSprite  * markerSprite1 = [CCSprite spriteWithFile: @"IMG2.PNG"]; 
marker1 = [CC3Billboard nodeWithName: @"TouchSpot1" withBillboard: markerSprite1]; 


CCSprite  * markerSprite2 = [CCSprite spriteWithFile: @"IMG3.PNG"]; 
marker2 = [CC3Billboard nodeWithName: @"TouchSpot2" withBillboard: markerSprite2]; 


CCSprite  * markerSprite3 = [CCSprite spriteWithFile: @"IMG4.PNG"]; 
marker3 = [CC3Billboard nodeWithName: @"TouchSpot3" withBillboard: markerSprite3]; 

CCSprite  * markerSprite4 = [CCSprite spriteWithFile: @"IMG5.png"]; 
marker4 = [CC3Billboard nodeWithName: @"TouchSpot4" withBillboard: markerSprite4]; 


CCSprite  * markerSprite5 = [CCSprite spriteWithFile: @"IMG2.PNG"]; 
marker5 = [CC3Billboard nodeWithName: @"TouchSpot5" withBillboard: markerSprite5]; 


CCSprite  * markerSprite6 = [CCSprite spriteWithFile: @"IMG3.PNG"]; 
marker6 = [CC3Billboard nodeWithName: @"TouchSpot6" withBillboard: markerSprite6]; 


CCSprite  * markerSprite7 = [CCSprite spriteWithFile: @"IMG4.PNG"]; 
marker7 = [CC3Billboard nodeWithName: @"TouchSpot7" withBillboard: markerSprite7]; 







float scale=0.15; 

// marker.scale = cc3v(0.0001f, 0.0001f, 0.0001f); 
marker.location = cc3v(0.0f, 0.0f, 50.0); 
marker.uniformScale=scale; 
marker.isTouchEnabled = YES; 

marker1.location = cc3v(35.0, 0.0f, 35.0); 
marker1.uniformScale=scale; 
marker1.isTouchEnabled = YES; 


marker2.location = cc3v(50, 0.0f, 0.0f); 
marker2.uniformScale=scale; 
marker2.isTouchEnabled = YES; 

marker3.location = cc3v(35, 0.0f, -35.0f); 
marker3.uniformScale=scale; 
marker3.isTouchEnabled = YES; 

marker4.location = cc3v(0.0f, 0.0f, -50.0f); 
marker4.uniformScale=scale; 
marker4.isTouchEnabled = YES; 

marker5.location = cc3v(-35.0f, 0.0f, -35.0f); 
marker5.uniformScale=scale; 
marker5.isTouchEnabled = YES; 


marker6.location = cc3v(-50.0f, 0.0f, 0.0f); 
marker6.uniformScale=scale; 
marker6.isTouchEnabled = YES; 

marker7.location = cc3v(-35.0f, 0.0f, 35.0f); 
marker7.uniformScale=scale; 
marker7.isTouchEnabled = YES; 

marker.rotation = cc3v(0.0f, 0.0f, 0.0f); 
marker1.rotation = cc3v(0.0f,45.0f, 0.0f); 

marker2.rotation = cc3v(0.0f,90.0f, 0.0f); 
marker3.rotation = cc3v(0.0f, 130.0f, 0.0f); 
marker4.rotation = cc3v(0.0f, 180.0f, 0.0f); 
marker5.rotation = cc3v(0.0f, 225.0f, 0.0f); 
marker6.rotation = cc3v(0.0f, 270.0f, 0.0f); 

marker7.rotation = cc3v(0.0f, 315.0f,0.0f); 





CC3Node* runningTrack = [CC3Node nodeWithName: kRunningTrackName]; 
runningTrack.location = cc3v(0.0, 10.0, 0.0);; 
[self addChild: runningTrack]; 

CCActionInterval* runLap = [CC3RotateBy actionWithDuration: 10.0 rotateBy: cc3v(0.0, 360.0, 0.0)]; 
[runningTrack runAction: [CCRepeatForever actionWithAction: runLap]]; 

[runningTrack addChild:marker]; 
[runningTrack addChild:marker1]; 
[runningTrack addChild:marker2]; 
[runningTrack addChild:marker3]; 
[runningTrack addChild:marker4]; 
[runningTrack addChild:marker5]; 
[runningTrack addChild:marker6]; 
[runningTrack addChild:marker7]; 

//[self addChild: dieCube]; 

}

即使我是新來cocos3d,但如果你認爲我可以幫不hesit吃了問。 Karim