前提・実現したいこと
練習で下記のリンクと同じものを作りたいのですが、
少し古いみたいで、コードにエラーが発生してしまいます。
参考にしているリンク
https://nw.tsuda.ac.jp/lec/swift/SwiftGravity/
エラーが出ているのは、下記のコード
let handler: CMDeviceMotionHandler = { (motionData: CMDeviceMotion?, error: NSError?) -> Void in self.stepGame(motionData, error: error) } cmManager.startDeviceMotionUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: handler) }
調べたところ、NSErrorのNSを取れば、エラーは消えると言うリンクも見つけたのですが、消えませんでした。
消えると書いてあったリンク
http://yatsurecreate.com/2017/03/31/swift%E3%81%A7%E3%83%A2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%81%AE%E5%80%A4%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%A7%E3%82%A8/
どうしても、うまくいかないので、
ご教授のほど、よろしくお願い致します。
該当のソースコード全文
import UIKit import CoreMotion class ViewController: UIViewController { @IBOutlet weak var myBall: UIImageView! let cmManager = CMMotionManager() let scrSize: CGSize = UIScreen.mainScreen().bounds.size let mag: Double = 20.0 var vx, vy: Double? override func viewDidLoad() { super.viewDidLoad() vx = 0.0 vy = 0.0 startGame() } func startGame() { cmManager.deviceMotionUpdateInterval = 0.1 let handler: CMDeviceMotionHandler = { (motionData: CMDeviceMotion?, error: NSError?) -> Void in self.stepGame(motionData, error: error) } cmManager.startDeviceMotionUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: handler) } func stepGame(motionData: CMDeviceMotion?, error: NSError?) { var xMin, xMax, yMin, yMax: Int xMin = Int(myBall.frame.width / 2) xMax = Int(scrSize.width) - xMin yMin = Int(myBall.frame.height / 2) yMax = Int(scrSize.height) - yMin if let motion = motionData { let gravity = motion.gravity vx = vx! + gravity.x * mag vy = vy! - gravity.y * mag var x: Int = Int(Double(myBall.center.x) + vx!) var y: Int = Int(Double(myBall.center.y) + vy!) if (x < xMin) { x = xMin; vx = 0.0 } else if (x > xMax) { x = xMax; vx = 0.0 } if (y < yMin) { y = yMin; vy = 0.0 } else if (y > yMax) { y = yMax; vy = 0.0 } myBall.center = CGPoint(x: x,y: y) } } override func didReceiveMemoryWarning() { at can be recreated. } }
使用している言語
swift
Xvode 11.4
ご教授のほど、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/11 02:39