加速传感器(CoreMotion) swift
2016-12-16 23:43
197 查看
//
// ViewController.swift
// UILabelTest
//
// Created by mac on 15/6/23.
// Copyright (c) 2015年 fangyuhao. All rights reserved.
//
import UIKit
import CoreMotion
class ViewController: UIViewController,UIAccelerometerDelegate {
}
// ViewController.swift
// UILabelTest
//
// Created by mac on 15/6/23.
// Copyright (c) 2015年 fangyuhao. All rights reserved.
//
import UIKit
import CoreMotion
class ViewController: UIViewController,UIAccelerometerDelegate {
var ball:UIImageView! var speedX:UIAccelerationValue = 0 var speedY:UIAccelerationValue = 0 var motionManager = CMMotionManager() override func viewDidLoad() { super.viewDidLoad() ball = UIImageView(image: UIImage(named:"ball")) ball.frame = CGRectMake(0, 0, 50, 50) ball.center = self.view.center self.view.addSubview(ball) motionManager.accelerometerUpdateInterval = 1/60 if(motionManager.accelerometerAvailable){ var queue = NSOperationQueue.currentQueue() motionManager.startAccelerometerUpdatesToQueue(queue, withHandler: {(accelerometerData:CMAccelerometerData!,error:NSError!)in //动态设置小球位置 self.speedX += accelerometerData.acceleration.x self.speedY += accelerometerData.acceleration.y var posX = self.ball.center.x + CGFloat(self.speedX) var posY = self.ball.center.y - CGFloat(self.speedY) //碰到边框后的反弹处理 if posX<0{ posX = 0 //碰到左边的边框后以0.4倍的速度反弹 self.speedX *= -0.4 }else if posX > self.view.bounds.size.width{ posX = self.view.bounds.size.width //碰到右边的边框后以0.4倍的速度反弹 self.speedX *= -0.4 } if posY<0{ posY = 0 //碰到上面的边框不反弹 self.speedY = 0 }else if posY>self.view.bounds.size.height{ posY = self.view.bounds.size.height //碰到下面的边框以1.5倍的速度反弹 self.speedY *= -1.5 } self.ball.center = CGPointMake(posX, posY) }) } // Do any additional setup after loading the view, typically from a nib. }
}
相关文章推荐
- Swift用CoreMotion得到屏幕当前方向的方法
- swift 加速传感器
- Swift - 加速传感器(CoreMotion)的用法,小球加速运动并反弹样例
- Swift - 加速传感器(CoreMotion)的用法,小球加速运动并反弹样例
- swift生成二维码
- swift UITableView(六)
- Swift - 使用addSubview()方法将StoryBoard中的视图加载进来
- Swift如何检测iCloud已登录(在线)
- 7.新浪微博Swift项目第七天
- 斯坦福Swift公开课上线 国内开发者已着手翻译
- swift 彻底解决_OBJC_CLASS_$_某文件名", referenced from:问题
- Swift设计模式之装饰模式
- swift--闭包
- swift多线程
- Swift游戏实战-跑酷熊猫 00 游戏预览
- Swift开发之使用UIRefreshControl实现下拉刷新数据及uirefreshcontrol使用
- Swift设计模式之策略模式
- Swift学习3--函数和闭包
- Swift3.0- swift中的问号"?"和感叹号"!"语法
- 1、欢迎使用Swift来编写iOS项目