gpt4 book ai didi

ios7 - 在touchesmoved中在 Sprite 套件中画一条线

转载 作者:行者123 更新时间:2023-12-04 05:24:23 25 4
gpt4 key购买 nike

我想沿着在touchesmoved中收集的点在 Sprite 套件中画一条线。

这样做的最有效方法是什么?我已经尝试了几次,但我的线路要么在 y 轴上出错,要么占用了大量处理能力,导致 fps 下降到每秒 10 次。

有任何想法吗?

最佳答案

您可以定义 CGpath 并通过在触摸移动功能中添加线条或弧线来修改它。之后,您可以从您的路径创建一个 SKShapeNode 并根据您的喜好进行配置。
如果您想在手指在屏幕上移动时绘制线条,您可以在触摸以空路径开始时创建形状节点,然后对其进行修改。

编辑:我写了一些代码,它对我有用,画了一条简单的红线。

在您的 MyScene.m 中:

@interface MyScene()
{
CGMutablePathRef pathToDraw;
SKShapeNode *lineNode;
}
@end

@implementation
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch* touch = [touches anyObject];
CGPoint positionInScene = [touch locationInNode:self];

pathToDraw = CGPathCreateMutable();
CGPathMoveToPoint(pathToDraw, NULL, positionInScene.x, positionInScene.y);

lineNode = [SKShapeNode node];
lineNode.path = pathToDraw;
lineNode.strokeColor = [SKColor redColor];
[self addChild:lineNode];
}

- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
{
UITouch* touch = [touches anyObject];
CGPoint positionInScene = [touch locationInNode:self];
CGPathAddLineToPoint(pathToDraw, NULL, positionInScene.x, positionInScene.y);
lineNode.path = pathToDraw;
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
// delete the following line if you want the line to remain on screen.
[lineNode removeFromParent];
CGPathRelease(pathToDraw);
}
@end

关于ios7 - 在touchesmoved中在 Sprite 套件中画一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19953854/

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