我在屏幕底部有一个要点。 当我在某处触摸屏幕时,我希望在该点和手指所指的点之间出现一条虚线。 线的长度和旋转将根据手指的位置或移动的位置而变化。

我假设我会在虚线上重复一小行图像,但是我想这就是为什么需要您的帮助!

#1楼 票数:2

请注意,所有这些都可以组织得更好,而且我个人不喜欢任何形状的SKShapeNode :)或形式,但这是实现它的一种方法:

#import "GameScene.h"



@implementation GameScene{
    SKShapeNode *line;
}

-(void)didMoveToView:(SKView *)view {
    /* Setup your scene here */

    line = [SKShapeNode node];
    [self addChild:line];
    [line setStrokeColor:[UIColor redColor]];

}

-(void)drawLine:(CGPoint)endingPoint{

    CGMutablePathRef pathToDraw = CGPathCreateMutable();
    CGPathMoveToPoint(pathToDraw, NULL, CGRectGetMidX(self.frame),CGRectGetMidY(self.frame));
    CGPathAddLineToPoint(pathToDraw, NULL, endingPoint.x,endingPoint.y);

    CGFloat pattern[2];
    pattern[0] = 20.0;
    pattern[1] = 20.0;
    CGPathRef dashed =
    CGPathCreateCopyByDashingPath(pathToDraw,NULL,0,pattern,2);

    line.path = dashed;

    CGPathRelease(dashed);
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    /* Called when a touch begins */

    for (UITouch *touch in touches) {
        CGPoint location = [touch locationInNode:self];

        [self drawLine:location];

    }
}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    for (UITouch *touch in touches) {
        CGPoint location = [touch locationInNode:self];

        [self drawLine:location];

    }
}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

    line.path = nil;

}

结果是:

虚线图

另外,我不知道这是多少性能,但是您可以对其进行测试,调整和改进。 甚至像您说的那样使用SKSpriteNode。 编码愉快!

编辑

我只是注意到您说的是点缀(而不是虚线):)

您必须将模式更改为:

 pattern[0] = 3.0;
 pattern[1] = 3.0;

  ask by translate from so

未解决问题?本站智能推荐:

2回复

在Spritekit中,是否可以处理临时创建的SKSpriteNode变量上的触摸事件?

我想检测触摸并在触摸精灵时对此做出反应,但我不希望使用其自己的类来覆盖它(因此,可以通过touchesBegan方法进行处理)。 我只是希望它被视为场景中的另一个精灵。 我目前正在这样做: 但是,我想知道是否有更简单的方法来访问self.HangupButon和self.AnswerBu
1回复

SpriteKit节点选择和触摸管理

我正在写一个小的Sprite-Kit游戏。 屏幕上将有几个节点。 当用户点击其中之一时,它将被选中。 我通过在我使用的SKSpriteNode子类上实现touched确实开始来做到这一点(它将另一个叠加节点添加到被轻击的节点以表明它已被选中)。 用户应该能够通过点击选择另一个节点。
1回复

如何在spriteKit上触摸旋转图像/精灵?

我试图用一个手指触摸使精灵旋转。 老实说,我不知道该怎么做,这是spriteKit的新功能。 有任何想法吗?
1回复

SpriteKit/ObjectiveC:什么是物体的“触摸指示器”

我指的是SpriteKit游戏的菜单屏幕。 我使用图像SpriteNodes作为开始和选项按钮。 如果我触摸开始按钮,我想更改为“游戏视图”,如果按下选项按钮,则要更改为“选项视图”。 应该是一个简单的问题,但是我找不到任何资源。
3回复

xcodeiphone触摸虚线画

我每个身体都是法国人,所以请原谅我的英语。 我的问题是我想用手指在iphone上绘制一个像-----------这样的虚线图画,不是一条线而是一个平局。我有: 请点击“点”代码是什么。
1回复

SpriteKit中的Sprite没有任何移动

每当我在特定区域触摸时,我都试图将一个精灵节点向下移动。 这是我的代码,日志显示触摸寄存器。 我在做什么错,有没有更简单的方法可以做到这一点?
1回复

如何在屏幕上的某个点与用户的手指位置之间建立一条线连接?

我正在做一个游戏,但还没弄清楚。 因此,屏幕底部有一个小小的Zappy球,我想这样做,以便–触摸屏幕时,它形成一条电线,并将其连接在Zappy球和您的手指之间。 当您移动手指时,线条会缩小或放大以适合两者之间的距离。 就像现实生活中的那些电球一样。 您用手指触摸它,电流重新定向到您的
1回复

提供一个带有SpriteKit场景的UIAlertController(Objective-C)

我正在尝试制作一个SpriteKit应用程序,该应用程序具有一个按钮,如果用户愿意的话可以访问我的网站。 我认为发出警报(因为它是针对iOS 8的,因此我将使用UIAlertController )是一个很好的做法,以确认是否希望将其重定向到Safari来查看它。 到目前为止,这是我在代码