加速計案例(小球移動) - (Obj-C)

實現(xiàn)方式:
使用加速計反應(yīng)小球的受力情況,通過改變小球的frame,改變小球的位置

需要實時獲取數(shù)據(jù),所以要使用Push方式

這里只是根據(jù)加速度模擬小球移動:移動距離和加速度正相關(guān)

1.需要移動距離進(jìn)行累加來表示移動距離的變化 受力移動時間越長,速度越大,移動距離越來越遠(yuǎn)

2.避免小球移出界面,判斷小球的坐標(biāo),當(dāng)X軸和Y軸坐標(biāo)分表小于等于零和大于等于屏幕寬度/高度-自身寬度/高度時,先讓小球的坐標(biāo)值等于臨界值,然后改變加速度方向

3.同時為了模擬移動時的阻力,系數(shù)乘以了0.8

示例代碼:


#import "ViewController.h"
#import <CoreMotion/CoreMotion.h>

@interface ViewController ()
// 行為管理者
@property (nonatomic,strong) CMMotionManager *manager;
// 小球
@property (nonatomic,strong) UIImageView *ballImageView;
// 每次X軸移動的距離
@property (nonatomic,assign) CGFloat tmpAccelerationX;
// 每次Y軸移動的距離
@property (nonatomic,assign) CGFloat tmpAccelerationY;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 創(chuàng)建小球
    self.ballImageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"ball"]];
    self.ballImageView.bounds = CGRectMake(0, 0, 40, 40);
    [self.view addSubview:self.ballImageView];
    
    // 1. 創(chuàng)建管理者
    self.manager = [[CMMotionManager alloc]init];
    
    // 2. 設(shè)置間隔時間
    self.manager.accelerometerUpdateInterval = 0.02f;
    
    // 3. 開啟檢測
    [self.manager startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAccelerometerData * _Nullable accelerometerData, NSError * _Nullable error) {
        
        CMAcceleration acceleration = accelerometerData.acceleration;
        [self ballMoveWithAccelerometerData:acceleration];
        
    }];
    
}

// 小球移動
- (void)ballMoveWithAccelerometerData:(CMAcceleration)acceleration{
    
    CGRect ballFrame = self.ballImageView.frame;
    
    self.tmpAccelerationX += acceleration.x;
    self.tmpAccelerationY -= acceleration.y;
    
    ballFrame.origin.x += self.tmpAccelerationX;
    ballFrame.origin.y += self.tmpAccelerationY;
    
    
    // 判斷X軸激蹲、Y軸坐標(biāo),避免小球移出屏幕
    if (ballFrame.origin.x >= [UIScreen mainScreen].bounds.size.width - self.ballImageView.bounds.size.width) {
        
        ballFrame.origin.x = [UIScreen mainScreen].bounds.size.width - self.ballImageView.bounds.size.width;
        self.tmpAccelerationX *= -0.8;
        
    } else if (ballFrame.origin.x <= 0){
        
        ballFrame.origin.x = 0;
        self.tmpAccelerationX *= -0.8;
        
    }
    
    if (ballFrame.origin.y >= [UIScreen mainScreen].bounds.size.height - self.ballImageView.bounds.size.height){
        
        ballFrame.origin.y = [UIScreen mainScreen].bounds.size.height - self.ballImageView.bounds.size.height;
        self.tmpAccelerationY *= -0.8;
        
    }else if (ballFrame.origin.y <= 0){
        
        ballFrame.origin.y = 0;
        self.tmpAccelerationY *= -0.8;
    }
    
    self.ballImageView.frame = ballFrame;
}

@end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纺弊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌释簿,老刑警劉巖蕉斜,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椿争,死亡現(xiàn)場離奇詭異怕膛,居然都是意外死亡,警方通過查閱死者的電腦和手機秦踪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進(jìn)店門褐捻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掸茅,“玉大人,你說我怎么就攤上這事柠逞∶潦ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵板壮,是天一觀的道長逗鸣。 經(jīng)常有香客問我,道長个束,這世上最難降的妖魔是什么慕购? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮茬底,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘获洲。我一直安慰自己阱表,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布贡珊。 她就那樣靜靜地躺著最爬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪门岔。 梳的紋絲不亂的頭發(fā)上爱致,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機與錄音寒随,去河邊找鬼糠悯。 笑死,一個胖子當(dāng)著我的面吹牛妻往,可吹牛的內(nèi)容都是我干的互艾。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼讯泣,長吁一口氣:“原來是場噩夢啊……” “哼纫普!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起好渠,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤昨稼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拳锚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體假栓,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年晌畅,在試婚紗的時候發(fā)現(xiàn)自己被綠了但指。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖棋凳,靈堂內(nèi)的尸體忽然破棺而出拦坠,到底是詐尸還是另有隱情,我是刑警寧澤剩岳,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布贞滨,位于F島的核電站,受9級特大地震影響拍棕,放射性物質(zhì)發(fā)生泄漏晓铆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一绰播、第九天 我趴在偏房一處隱蔽的房頂上張望骄噪。 院中可真熱鬧,春花似錦蠢箩、人聲如沸链蕊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽滔韵。三九已至,卻和暖如春掌实,著一層夾襖步出監(jiān)牢的瞬間陪蜻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工贱鼻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宴卖,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓忱嘹,卻偏偏與公主長得像嘱腥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拘悦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 看了很多視頻齿兔、文章,最后卻通通忘記了础米,別人的知識依舊是別人的分苇,自己卻什么都沒獲得。此系列文章旨在加深自己的印象屁桑,因...
    DCbryant閱讀 727評論 0 2
  • 而對于一個新人医寿,剛剛進(jìn)入某個領(lǐng)域,可謂摸不著頭腦蘑斧,不知從哪里下手靖秩! 在大學(xué)里须眷,每到臨近期末考試,同學(xué)們都會期望老師...
    寧小南閱讀 522評論 0 0
  • 經(jīng)常有看到一些平臺分享404頁面的設(shè)計沟突,但只是丟了一些別人設(shè)計好的頁面花颗,再無其它說明。畢竟設(shè)計師都清楚設(shè)計404頁...
    _Ammy閱讀 2,754評論 5 39
  • 一念成佛一念成魔惠拭!悟空直到成佛又何曾真正悟到皆空扩劝!“心猿”之劫始終在于心。大圣究其平生职辅,也無法放下“貪嗔癡”—對自...
    一蓑煙雨_886閱讀 175評論 0 0
  • 1. 環(huán)境介紹 Windows10 python2.7 ipython notebook pandas 2. 問題...
    leobupt閱讀 5,272評論 0 4