加速传感器(CoreMotion) swift
//
// 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.
}
}
加速传感器(CoreMotion) swift的更多相关文章
- Swift - 加速传感器(CoreMotion)的用法,小球加速运动并反弹样例
1,加速传感器可以监听到x,y,z三个方向的加速度,使用步骤如下: (1)实例化CMMotionManager类 (2)向CMMotionManager的accelerometerUpdateInte ...
- Android 获取加速传感器的值,并去除杂音
1.注册和注销传感器 private void registerSensor() { manager.registerListener(this, manager.getDefaultSensor(S ...
- 设备加速传感器(accelerometer) ---- HTML5+
模块:Accelerometer Accelerometer模块管理设备加速度传感器,用于获取设备加速度信息,包括x(屏幕水平方向).y(垂直屏幕水平方向).z(垂直屏幕平面方向)三个方向的加速度信息 ...
- Pro Android学习笔记(一五四):传感器(4):陀螺仪、加速传感器
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处http://blog.csdn.net/flowingflying/以及作者@恺风Wei. 陀螺仪 陀螺仪(Gyr ...
- iOS 神秘而又强大的传感器系统 (附demo)
iOS中的各种传感器: 随着科技的发展,机器感知人的行为!Goole的无人驾驶汽车到李彦宏的无人驾汽车,都带入了各种计算及传感. 为了研究自然现象和制造劳动工具,人类必须了解外界的各类信息.了解外界信 ...
- [原创]cocos2d-x研习录-第三阶 特性之加速度传感器
智能手机的游戏与应用中,也经常会用到加速传感器事件来丰富用户的体验,比如飞翔的企鹅(英文AirPenguin)游戏就是通过加速度传感器来控制角色的移动和跳跃方向.下面学习Cocos2D-x中如何使用加 ...
- Android 使用加速度传感器实现摇一摇功能及优化
如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456 目前很多应用已经实现了摇一摇功能,这里通过讲解该功能的原理及实现回顾一下加速度传感器的使用: 1.首先获得 ...
- ASF(传感器)
版权声明:曾经的Blog文章合并.原创作品,谢绝转载.否则将追究法律责任. SensorManager类:用于创建sensor service的实例.该类提供了非常多 用于訪问和枚举传感器,注冊和注销 ...
- Android开发10:传感器器及地图相关应用
前言 啦啦啦~各位小伙伴们好~经过这一学期的Android知识的学习,我们学到了很多和Android开发相关的知识,这一学期的学习也要告一段落了. 一起进入我们今天的相关内容~这次我们将一起学习使用 ...
随机推荐
- Android IOS WebRTC 音视频开发总结(四七)-- 深度解读国内首届WebRTC大会背后的真相
本文主要解读国内首届WebRTC大会背后的真相,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处,更多详见www.rtc.help -------------------------- ...
- static 在多台下的特性
被static修饰的方法不具备多台的特性,因为这个时候,该方法已经不具备"后期绑定"的性质了,也就是说,基类的引用就算指向导出类,调用的static的方法还是用基类的. 如果要调用 ...
- [原]hdu2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (这个只是题目名字) (多重背包)
本文出自:http://blog.csdn.net/svitter 原题:http://acm.hdu.edu.cn/showproblem.php?pid=2191 题意:多重背包问题.转换成为01 ...
- win7如何设置某个软件不弹出用户账户控制
手动修改注册表: 在 HKEY_CURRENT_USERS\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 键下面 ...
- centos -bash-4.1$ 不显示用户名路径
1.在Terminal输入: vi ~/.bash_profile 2.如果没有.bash_profile可以自己添加.然后往文件中添加如下内容: export PS1=’[\u@\h \W]$ 注意 ...
- windwos异地备份Mysql数据库
@echo off@title Mysqlbackup echo MySQL数据库备份 echo ***********************echo Today %date%echo Time % ...
- C#中的委托、事件和设计模式(转载)
引言 委托和事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人 ...
- IOS绘图——简单三角形
#import <UIKit/UIKit.h> @interface MyView : UIView @end #import "MyView.h" @implemen ...
- win7 C# winForm编程 savefiledialog 不能弹出保存窗体
public void ResMsg() { while (isRecMsg) { //准备一个数组 准备接收 ...
- mysql 导入导出数据库、数据表
Linux下 均在控制台下操作. 导入数据库: 前提:数据库和数据表要存在(已经被创建) (1)将数据表 test_user.sql 导入到test 数据库的test_user 表中 [root@te ...