Ես վստահ չեմ, թե ինչ է կատարվում, այնպես որ ես չեմ կարող դա ձեզ ճիշտ նկարագրել, ես ստեղծեցի մի հավելված, որը գիծ է քաշում օգտվողների մատը քաշելով, դա Sprite Kit Game է, այնպես որ ես օգտագործեցի touchesBegan և touchesMoved, այնպես որ ինչ է տեղի ունենում: եթե ես մատը դնեմ էկրանին, երբ ես մեկ այլ գիծ գծում եմ, խաղը խափանում է: այն, ինչ ես փնտրում եմ, միջոց է անտեսելու երկրորդ հպումը մինչև առաջինը չավարտվի: Իմ խաղը գիծ է քաշում հպման սկզբնական դիրքից մինչև վերջի դիրքը, երբ հպումներն ավարտվում են այստեղ, իմ հպման գործառույթների կոդը:
var lineNode = SKShapeNode()
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch: AnyObject in touches{
positionOfStartTouch = touch.location(in: self)
lastPoint = touch.location(in: self)
firstPoint = touch.location(in: self)
}
let pathToDraw = CGMutablePath()
print(pathToDraw.isEmpty)
pathToDraw.move(to: CGPoint(x: firstPoint.x, y: firstPoint.y))
if frame.width == 375 {
lineNode.lineWidth = 4
}else if frame.width == 414 {
lineNode.lineWidth = 6
}else if frame.width == 768 {
lineNode.lineWidth = 8
}
lineNode.strokeColor = UIColor.white
lineNode.name = "Line"
lineNode.zPosition = 100000
lineNode.path = pathToDraw
self.addChild(lineNode)
shapeNodes.append(lineNode)
}
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch: AnyObject in touches{
positionInScene = touch.location(in: self)
}
let pathToDraw = lineNode.path as! CGMutablePath
lineNode.removeFromParent()
pathToDraw.move(to: CGPoint(x: firstPoint.x, y: firstPoint.y))
pathToDraw.addLine(to: CGPoint(x: positionInScene.x, y: positionInScene.y))
lineNode.path = pathToDraw
shapeNodes.append(lineNode)
self.addChild(lineNode)
firstPoint = positionInScene
}