IOS CoreMotion
2015-11-18 21:59
621 查看
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)
{
let queue = NSOperationQueue.currentQueue()
motionManager.startAccelerometerUpdatesToQueue(queue!, withHandler:
{ (accelerometerData : CMAccelerometerData?, error: NSError?) -> Void 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)
})
}
}
}
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)
{
let queue = NSOperationQueue.currentQueue()
motionManager.startAccelerometerUpdatesToQueue(queue!, withHandler:
{ (accelerometerData : CMAccelerometerData?, error: NSError?) -> Void 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)
})
}
}
}
相关文章推荐
- iOS开发:苹果应用商店审核指南中文翻译
- iOS基础知识:指针函数和函数指针
- Xamarin.iOS常用控件总结
- iOS开发:SDWebImage内部实现过程
- iOS MD5加密
- iOS--CoreLocation的简单使用
- iOS开发:创建真机调试证书
- [IOS开发]模仿微博的客户端(1)
- iOS多线程技术
- CocoaPods使用详解
- #在蓝懿学习iOS的日子#day21
- iOS 第三方框架-MJExtension
- 如何在xcode7上免开发者账号进行ios程序真机测试
- iOS重绘机制drawRect
- iOS中几种数据持久化方案
- ios学习笔记(六)视图控制器
- ios学习笔记(六)视图控制器
- ios中的三种弹框
- ios xmppFramework框架的导入步骤和介绍
- iOS 图片按比例压缩,指定大小压缩