gpt4 book ai didi

objective-c - Sprite 套件中的形状

转载 作者:行者123 更新时间:2023-12-02 07:24:31 24 4
gpt4 key购买 nike

如何在 Sprite 套件中制作圆形或其他形状我见过一些使用 CGPath 但我从未真正使用过 CGPath 。我能够用 SKSpritenode 制作一个正方形,但我似乎无法制作三角形或圆形。

最佳答案

这将创建一个 SKShapeNode 并将其路径属性设置为半径为 16 的圆形路径。

    SKShapeNode *shape = [SKShapeNode node];
CGRect rect = CGRectMake(0, 0, 32, 32);
shape.path = [self circleInRect:rect];
shape.strokeColor = [SKColor greenColor];
shape.fillColor = [SKColor redColor];
shape.position = CGPointMake(100,100);

[self addChild:shape];

此方法返回一个用椭圆形路径初始化的 CGPath 对象

- (CGPathRef) circleInRect:(CGRect)rect
{
// Adjust position so path is centered in shape
CGRect adjustedRect = CGRectMake(rect.origin.x-rect.size.width/2, rect.origin.y-rect.size.height/2, rect.size.width, rect.size.height);
UIBezierPath *bezierPath = [UIBezierPath bezierPathWithOvalInRect:adjustedRect];
return bezierPath.CGPath;
}

这是一条三角形路径...

- (CGPathRef) triangleInRect:(CGRect)rect
{
CGFloat offsetX = CGRectGetMidX(rect);
CGFloat offsetY = CGRectGetMidY(rect);
UIBezierPath* bezierPath = [UIBezierPath bezierPath];

[bezierPath moveToPoint: CGPointMake(offsetX, 0)];
[bezierPath addLineToPoint: CGPointMake(-offsetX, offsetY)];
[bezierPath addLineToPoint: CGPointMake(-offsetX, -offsetY)];

[bezierPath closePath];
return bezierPath.CGPath;
}

关于objective-c - Sprite 套件中的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25089707/

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