gpt4 book ai didi

ios - 更改 spritekit 中的物理 body 框架

转载 作者:行者123 更新时间:2023-12-01 16:31:35 25 4
gpt4 key购买 nike

我使用 SpriteKit 开发了一个 iOS 游戏(这样一个有助于快速制作游戏的框架)。我添加纹理并将主角的 body 配置为图像

The first state: Stand Up

绿色矩形是 body 的框架。我正在使用以下代码来创建它

@interface MainCharacter : SKSpriteNode

@end

@implementation MainCharacter

+ (instancetype)mainCharacterAtPosition:(CGPoint)pos {
MainCharacter* mainChar = [[MainCharacter alloc] initWithTexture:[SKTexture textureWithImageNamed:@"stand_up"]];
mainChar.position = pos;
mainChar.xScale = 0.5f;
mainChar.yScale = 0.5f;

return mainChar;
}

- (instancetype)initWithTexture:(SKTexture *)texture {
if (self = [super initWithTexture:texture]) {
self.name = kCharacterName;

self.anchorPoint = CGPointMake(0.5f, 0.0f);

[self standup];

CGSize spriteSize = self.size;
CGPoint center = CGPointMake(spriteSize.width*(self.anchorPoint.x-0.5f), spriteSize.height*(0.5f-self.anchorPoint.y));

self.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:spriteSize center:center];
self.physicsBody.dynamic = NO;
self.physicsBody.categoryBitMask = kCharacterCategory;
self.physicsBody.contactTestBitMask = 0x0;
self.physicsBody.collisionBitMask = 0x0;
}
return self;
}

- (void)standup {
SKAction* standupAction = [SKAction setTexture:self.standupTexture resize:YES];
[self runAction:standupAction];
}

- (void)standdown {
SKAction* standownAction = [SKAction setTexture:self.standdownTexture resize:YES];
[self runAction:standownAction completion:^{

}];

[self performSelector:@selector(standup) withObject:nil afterDelay:1.0f];
}

MainCharacter 是一个继承自 SKSPriteNode 的类,只是一个方便管理主角的类。站起来是角色的第一个状态。我还有一个状态,暂时叫stand down(如下图演示)

Stand down state

我添加了一个向下滑动的手势以使角色站立。

绿色矩形也是 body ,但对角色来说太大了。我想制作一个 body 框架作为红色矩形。

任何人都可以帮助我如何在我的角色站立时使 body 变小并在站立后扩大 body

最佳答案

你可以摧毁当前的物理体self.physicsBody = nil;然后只需创建一个具有新尺寸要求的新文件。

关于ios - 更改 spritekit 中的物理 body 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31403167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com