1. 程式人生 > >加速感測器(CoreMotion)的用法,小球加速運動並反彈樣例

加速感測器(CoreMotion)的用法,小球加速運動並反彈樣例

1,加速感測器可以監聽到x,y,z三個方向的加速度,使用步驟如下: (1)例項化CMMotionManager類 (2)向CMMotionManager的accelerometerUpdateInterval屬性中設定通知間隔時間值。
(3)使用NSOperationQueue.currentQueue()建立一個監聽佇列。
(4)使用startAccelerometerUpdatesToQueue方法更新監聽佇列,並設定回撥函式用於接受加速度通知。在回撥函式中使用accelerometerData.acceleration相關屬性可以獲取x、y、z各個方向的加速度。

2,通知頻率設定建議

accelerometerUpdateInterval表示通知頻率,表示間隔多少秒通知一次。iPhone開發文件中推薦使用的通知間隔如下:
(1)檢測裝置朝向:1/10 ~ 1/20
(2)在遊戲中需要實時使用加速感測器時:1/30 ~ 1/60
(3)檢測敲擊裝置或者劇烈搖動裝置的情況下:1/70 ~ 1/100

3,x,y,z軸
(1)對於iphone手機來說,畫面上下為y軸,左右為x軸,貫穿螢幕為z軸。
(2)向上,向右,手機的前面分別是各軸的正方向。

4,加速度(原始加速度)
加速度不僅受震動手機時施加的作用力的影響,還會持續受到重力的影響。因此iphone手機如果垂直拿在手上的話,Y軸負方向將受重力作用,加速度y屬性將一直為負值(最小值為-1.0)
5,Gravity和UserAcceleration 網友cruise_H問:motionManager.deviceMotion.userAcceleration.x和motionManager.accelerometerData!.acceleration.x兩個獲取的acceleration有什麼區別? 上面提到的原始的加速度(即通過startAccelerometerUpdates獲取的那個值)實際上是由兩種加速度合成而來的。一個是重力加速度(Gravity),一個是使用者對手機施加的加速度(UserAcceleration)(當然我們也可以分別獲取這兩種加速度)。 所以當手機垂直靜止時,雖然UserAcceleration是0,但由於有重力加速度,所以兩個合成後加速度y屬性便是為負值。

6,測試樣例

該應用執行後,將在畫面正中央顯示一個球體。傾斜手機時,球體將向著傾斜的方向運動。碰撞到四壁後反彈回來。 (注意:由於需要用到裝置的重力感應器,所以要使用真機除錯,模擬器執行小球不會動。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 import UIKit import CoreMotion class ViewControllerUIViewController,UIAccelerometerDelegate { var ball:UIImageView! var speedX:UIAccelerationValue=0 var speedY:UIAccelerationValue=0 var motionManager = CMMotionManager() override 

相關推薦

加速感測器CoreMotion用法小球加速運動反彈

1,加速感測器可以監聽到x,y,z三個方向的加速度,使用步驟如下: (1)例項化CMMotionManager類 (2)向CMMotionManager的accelerometerUpdateInterval屬性中設定通知間隔時間值。 (3)使用NSOperat

SQL中union、except差集、intersect交集用法然而 mysql 不支援except 和 intersect

​​​​​​知識點: UNION返回兩個結果集的並集。還有一個union all的用法(union沒有包含重複列,union all 包含重複列) EXCEPT 返回兩個結果集的差(即從左查詢中返回右查詢沒有找到的所有非重複值(第一個表有,第二個表無))。 INTERS

自定義控制元件PaintCanvas 基礎用法

本篇部落格繼續學習 Paint 和 Canvas 的基礎用法,上一篇部落格學習了基礎API使用( 基礎幾何圖形,Path 路徑 ),接下來學習 繪製文字 和 繪製圖片 上一篇文章,沒看的有必要先了解一下: 自定義控制元件(一)Paint,Canvas 基礎用

Pro Android學習筆記一五四感測器4:陀螺儀、加速感測器

陀螺儀 陀螺儀(Gyroscope sensor)測量裝置轉動的角速度。最早的陀螺儀發明在中國,科學應用則在西方,陀螺儀是為士大夫坐轎子看書是免收燭光搖曳發明的,這在很久之前一部西方拍的科教片看到,具體名字忘了。Pro Android 4.0中說陀螺儀的誤差會慢慢積累,因此通與加速感測器一致使用,通過Ka

AngularJS Filter過濾器用法

icon 使用 currency 器) afa 只需要 變量轉換 string ase 一、在視圖模板(View Template)中使用 在表達式中應用Filters (過濾器) 需要遵循格式如下: {{ expression | filter }}

Django學習筆記——安裝創建項目,配置

lvs csv oot url root import 方式 配置文件 函數 瘋狂的暑假學習之 Django學習筆記(一) 教材 書《The Django Book》 視頻:csvt Django視頻 1.創建項目

redis學習一 keyPython操作redis 鍵

lpad ren redis key lee 設置 amp res 列表 pex # -*- coding: utf-8 -*- import redis #這個redis 連接不能用,請根據自己的需要修改 r =redis.Redis(host="123.516.174

C# 哈希表Hashtable用法筆記

timestamp remove 空間 方法 generic alt dsi 項目 bool 一、什麽是Hashtable? Hashtable 類代表了一系列基於鍵的哈希代碼組織起來的鍵/值對。它使用鍵來訪問集合中的元素。 當您使用鍵訪問元素時,則使用哈希表,而且

Nordic nRF52832 學習筆記1 介紹入門與準備工作

例程 盜版 path pdf 規範 準備 但是 依然 可能   近來,物聯網已成為大勢所趨,VR與AR正方興未艾,各種手環、遙控、智能家居也在粉墨登場。技術前沿的領航者們已經快馬加鞭,各種意誌與暗示也在上傳下達。物聯網,無線通訊,移動互聯,將成為新的目標與寵兒。最近開的電賽

挖一挖C#中那些我們不經常使用的東西之系列4——GetHashCodeExpandoObject

add 工具 通過 border 後期綁定 main image 代碼 不同 一:GetHashCode   從MSDN上能夠看到的解釋是:用作特定類型的哈希函數,也就是說不論什麽對象的實例都會有一個int32類型的HashCode。而且存放在FCL中的

JStorm與Storm源碼分析--Scheduler調度器

系統 負責 bad 二維碼 sting storm return prepare end Scheduler作為Storm的調度器,負責為Topology分配可用資源。 Storm提供了IScheduler接口,用戶可以通過實現該接口來自定義Scheduler。 其定義如下

if--else語句getchar()和putchar()

c1、if 語句;示例程序:#include<stdio.h> int main() { const int FREEEZING=0; float temperature; int cold_days=0; int all_days=0; printf("enter the list of dai

PL/SQL 編程基礎變量分支循環異常

變量類型 set art blog replace 過程 value ase ng- SQL和PL/SQL: SQL 結構化查詢語言(Structural Query Language),是用來訪問和操作關系型數據庫的一種標準通用語言,屬於第四代語言(4GL)。可以方便的

git中誤刪提交commit怎麽恢復

pan 找到 mage 發現 bsp cnblogs reset XML spa “xml文件存儲數據”提交被我誤操作,即使用reset --hard刪除了,然後又進行了三次提交,發現刪除的提交有用,需要找回來, 於是找了好久,找到好方法: 1。進入工程下的.git文件下

Java學習筆記-------StringStringBufferStringBuilder區別以及映射到的同步異步相關知識

ringbuf 等待 java學習筆記 java學習 單線程 回復 改變 hashtable ble 1. String是不可變類,改變String變量中的值,相當於開辟了新的空間存放新的string變量 2. StringBuffer 可變的類,可以通過append方法改

深度學習的異構加速技術:螺獅殼裏做道場

篩選 分享 intel 支持 get 更多 wid efficient 優勢 作者簡介:kevinxiaoyu,高級研究員,隸屬騰訊TEG-架構平臺部,主要研究方向為深度學習異構計算與硬件加速、FPGA雲、高速視覺感知等方向的構架設計和優化。“深度學習的異構加速技術”系列

JavaScript數據可視化編程學習Flotr2包含簡單的柱狀圖折線圖餅圖散點圖

基礎 沒有 cat 勝利 而是 5.4 最好的 表數據 聯系 一、基礎柱狀圖 二、基礎的折線圖 三、基礎的餅圖 四、基礎的散點圖 一、基礎柱狀圖 如果你還沒有想好你的數據用什麽類型的圖表來展示你的數據,你應該首先考慮是否可以做成柱狀圖。柱狀圖可以表示數據的

PyCharm在同一個包package如何把一個.py文件導入另外一個.py文件下

通過 targe aid lis clear 返回 href baidu 文件導入 PyCharm在同一個包(package)下,如何把一個.py文件導入另外一個.py文件下 在同一個包下只需要用import 掉以後就可以找到模塊所在的位置,但是如果不在同一個包下,在需

黑馬基礎階段測試題:創建Phone手機Phone類中包含以下內容:

ring post power 試題 println one 控制臺 sta 創建 package com.swift; public class Phone { private String pinpai; private int dianl

Java鎖之重入鎖Reentrantlock原理公平鎖與非公平鎖

一個 star spa void 模板 ont thread fin 模式 1、特點: 已獲取鎖的線程再次請求鎖,可以直接獲取。 2、實現: 自定義內部類 Sync,繼承 AbstarctQueuedSynchronizer : 2.1、獲取鎖:lock() a、公平鎖: