iOS 重力感应 学习1 陀螺仪 水平仪 指南针
2024-09-02 04:36:11
小球可以随着重力感应 四处乱撞。 放大了坐标位移 就可以看见小球动了。
然后规定小球的路径 当滑到中间时候 弹出一张图片 作为提示。 我做了一个小demo 效果不错哦
CMMotionManager *motionManager = [[CMMotionManager alloc]init];
if (!motionManager.accelerometerAvailable) {
// fail code // 检查传感器到底在设备上是否可用
}
motionManager.accelerometerUpdateInterval = 0.01; // 告诉manager,更新频率是100Hz
/*
[motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *latestAcc, NSError *error)
{
//2. Gravity 获取手机的重力值在各个方向上的分量,根据这个就可以获得手机的空间位置,倾斜角度等
CMAccelerometerData *newestAccel = motionManager.accelerometerData;
double accelerationX = newestAccel.acceleration.x;
double accelerationY = newestAccel.acceleration.y; imageView.frame=CGRectMake(accelerationX*100 , accelerationY*100, 40, 40);
NSLog(@"%f==%f\n",accelerationY,accelerationY);
//通过陀螺仪模块可以实现模拟赛车,模拟射击等。
[self.view addSubview:imageView]; }]; //*/
NSLog(@"%f", Height); /* 加速度传感器开始采样,每次采样结果在block中处理 */
// 开始更新,后台线程开始运行。
[motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error)
{
CMAccelerometerData *newestAccel = motionManager.accelerometerData;
double accelerationX = newestAccel.acceleration.x;
double accelerationY = newestAccel.acceleration.y;
f.origin.x += (accelerationX * SIZE) * ;
f.origin.y += (accelerationY* SIZE) * -; if(f.origin.x < )
f.origin.x = ;
if(f.origin.y < )
f.origin.y = ; if(f.origin.x > (self.view.frame.size.width - f.size.width))
f.origin.x = (self.view.frame.size.width - f.size.width);
if(f.origin.y > (self.view.frame.size.height - f.size.height))
f.origin.y = (self.view.frame.size.height - f.size.height);
NSLog(@"%f==%f\n",f.origin.x ,f.origin.y); /* 运动动画 */
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.1]; if(f.origin.y>=Height-)
{
f.origin.y=Height-;
}
imageView.frame=CGRectMake( ,f.origin.y, , );
//通过陀螺仪模块可以实现模拟赛车,模拟射击等。
[self.view addSubview:imageView];
if(f.origin.y>=(Height-)/&&f.origin.y<=(Height+)/)
{
[self.view addSubview:baby];
// [NSThread sleepForTimeInterval:5.0];
//
}
else
{ [baby removeFromSuperview];
}
[UIView commitAnimations]; }];
最新文章
- 各类坐标系相互之间的转换(84互转GC02,GC02互转BD09)
- c语言的一个简单的链表
- 【分布式协调器】Paxos的工程实现-cocklebur简介(二)
- CSS3-基于浮动的布局,响应式WEB设计,定位网页上的元素,设计打印页面的css技术
- 【spring 区别】ClassXmlAplicationContext和FileSystemXmlApplicationContext的区别
- cocos2d-x lua脚本开发 1
- .NET知识点总结一(笔记整合)
- UVA 1622 Robot
- mongoDB5--mongoDB增删改查
- 安装psutil模块报错&;安装python-devel
- mysql----快速删除数据表(drop,truncate.delete)
- Spring源码阅读-spring启动
- 学习--->;更新集合/内存/深浅拷贝
- svn基础了解
- Laravel--Artisan常用命令
- Confluence 6 色彩选择器展开的页面
- Win7 VS2015 x64 MASM汇编语言编写DLL文件
- Scrapy的安装和基本使用方法
- 使用ngxtop实时监控nginx
- http1.1 协议响应方面参数