有没有办法使用SKSpriteNode和PhysicsBody参数使用Spritekit制作柔体?

时间:2014-03-13 14:22:26

标签: sprite-kit skspritenode skphysicsbody softbody

我有以下精灵落在屏幕的底部:

// The View
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
self.physicsWorld.contactDelegate = self;

// The Sprite
SKSpriteNode *cube = [[SKSpriteNode alloc] initWithImageNamed:@"cube"];
[cube setPosition:CGPointMake(160,250);
[self addChild:cube];

// The Physics
cube.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:cube.frame.size];
cube.physicsBody.dynamic = YES;
cube.physicsBody.affectedByGravity = YES;
cube.physicsBody.mass = 0.02;

当它碰到屏幕的底部边框时,有没有办法让它的侧面凸出?像果冻一样的东西或柔软的身体仍然保持其形状在一定程度上,但在自重下膨胀?我希望这是有道理的......

2 个答案:

答案 0 :(得分:2)

访问网站https://gist.github.com/kazukitanaka0611/4b9d4ac9dff0cd317b6c它有sprite kit中软体(果冻)的说明和源代码

答案 1 :(得分:1)

没有数学的快捷方式: 1使用闪光来补间你的盒子翘曲。 2将补间帧导出为精灵表(纹理图集) 3在与场景中的边缘物理主体接触时为纹理图集设置动画。

你的盒子会掉落并在接触时为单独的图像添加动画效果,使其产生翘曲/凸出的印象。

我使用这种方法并且它起作用 - 换句话说它产生了预期的效果,在我看来这是重要的 - 你的游戏玩家不关心你是怎么做的,只要它看起来很棒。