Я пытаюсь нарисовать простую линию с той точки, которую я начал касатьться и удерживать до точки, в которую я двигаю пальцем. Таким образом, это всегда простая строка с начальной и конечной точками. Я пробовал разные учебники, но ничего не рисует, и я не получаю никаких ошибок.Нарисуйте простую строку на GameScene
Это мой код в GameScene.swift
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
/* Called when a touch begins */
if let touch = touches.first {
self.tapDown = true
self.firstPoint = touch.locationInView(self.view)
}
}
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.tapDown = false
self.firstPoint = CGPoint.zero
}
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
if let touch = touches.first where self.tapDown {
let currentPoint = touch.locationInView(self.view)
let context = UIGraphicsGetCurrentContext()
CGContextSetStrokeColorWithColor(context, UIColor.redColor().CGColor)
let lines = [CGPointMake(self.firstPoint.x,self.firstPoint.y),CGPointMake(currentPoint.x,currentPoint.y)]
CGContextAddLines(context,lines,4)
CGContextStrokePath(context)
}
}
В ViewController.swift после viewDidLoad я кладу это:
UIGraphicsBeginImageContext(skView.frame.size)
Что здесь не так?
Это именно ответ, который я написал бы, если бы я написал ответ. – Caleb
Я не получаю свой нулевой контекст, потому что я назвал UIGraphicsBeginImageContext (skView.frame.size) в viewDidLoad. Таким образом, существует фактически доступный контекст – NovumCoder
@NovumCoder 'UIGraphicsBeginImageContext' предназначен для создания внеэкранного изображения. Рисунок, который вы делаете с контекстом, созданным с помощью этой функции, не появится на экране. – Caleb