NVisionXR_iOS教程七——場景中物體運動

本章節(jié)教大家如何讓立方體按照自己想要的軌跡運動。 
添加頭文件#import''NVAnimationEffect.h'',在onCreate方法中實例該動畫類,代碼如下圖: 
1、立方體移動 
NVisionXR_iOS教程七 —— 場景中物體運動 
代碼: 
 

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的平陸網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

   /** 
     * 構(gòu)建一個NVAnimationEffect對象 
     * name 可以隨便取,但是要唯一 
     * context 傳入場景即可 
     * widget 作用的NVWidget對象,本例傳入的是立方體 
     * duration 運動的總時長 
     */ 
    NVAnimationEffect *move = [[NVAnimationEffect alloc] initWithAnimation:@"moveAni" Context:self Widget:cube Duration:4.0]; 
     
    // 設(shè)置關(guān)鍵幀 
    // 在4秒內(nèi)從(0,0,0)的位置線形的移動到(0,10,0)的位置 
    [move createKeyFrameWithTimePos:0 Pos:NVPosition(0.0, 0.0, 0.0) Type:TRANSLATE]; 
    [move createKeyFrameWithTimePos:4 Pos:NVPosition(0.0, 10.0, 0.0) Type:TRANSLATE];     
    // 是否循環(huán)播放動畫 
    [move setLoop:YES]; 
   
    // 將動畫對象添加到場景中 
    [self addAnimEffect:move]; 
  
    // 開始執(zhí)行運動 
    [move start];



2、立方體邊移動邊縮放 
NVisionXR_iOS教程七 —— 場景中物體運動 
代碼: 
  

 // 設(shè)置關(guān)鍵幀 
    // 在4秒內(nèi)從(0,0,0)的位置線形的移動到(0,10,0)的位置 
    [move createKeyFrameWithTimePos:0 Pos:NVPosition(0.0, 0.0, 0.0) Type:TRANSLATE]; 
    [move createKeyFrameWithTimePos:4 Pos:NVPosition(0.0, 10.0, 0.0) Type:TRANSLATE]; 
     
    // 新開一個運動軌道,在4秒內(nèi)從1倍放大到5倍 
    [move createKeyFrameWithTimePos:0 Pos:NVPosition(1.0, 1.0, 1.0) Type:SCALE]; 
    [move createKeyFrameWithTimePos:4 Pos:NVPosition(5.0, 5.0, 5.0) Type:SCALE];



3、立方體邊移動邊縮放邊自旋轉(zhuǎn) 
NVisionXR_iOS教程七 —— 場景中物體運動 
代碼: 
    

// 設(shè)置關(guān)鍵幀 
    // 在4秒內(nèi)從(0,0,0)的位置線形的移動到(0,10,0)的位置 
    [move createKeyFrameWithTimePos:0 Pos:NVPosition(0.0, 0.0, 0.0) Type:TRANSLATE]; 
    [move createKeyFrameWithTimePos:4 Pos:NVPosition(0.0, 10.0, 0.0) Type:TRANSLATE]; 
     
    // 新開一個運動軌道,在4秒內(nèi)從1倍放大到5倍 
    [move createKeyFrameWithTimePos:0 Pos:NVPosition(1.0, 1.0, 1.0) Type:SCALE]; 
    [move createKeyFrameWithTimePos:4 Pos:NVPosition(5.0, 5.0, 5.0) Type:SCALE]; 
     
    // 新開一個運動軌道,在4秒內(nèi)繞z軸旋轉(zhuǎn)360度 
    [move createKeyFrameWithTimePos:0 Pos:NVPosition(0.0, 0.0, 0.0) Type:ROTATION]; 
    [move createKeyFrameWithTimePos:4 Pos:NVPosition(0.0, 0.0, 360.0) Type:ROTATION];


   
4、貝塞爾曲線 
添加頭文件#import''NVBezierPath.h'', 在onCreate方法中實例該軌跡類,代碼如圖 
NVisionXR_iOS教程七 —— 場景中物體運動 NVisionXR_iOS教程七 —— 場景中物體運動
代碼: 
 

 /**
 
     * startPoint 軌跡的起始點 
     * controlPoint1 控制點1 
     * controlPoint2 控制點2 
     * startPoint 軌跡的結(jié)束點 
     **/ 
    NVVector3f startPoint = NVPosition(10.0, 0, 5.5); 
    NVVector3f controlPoint1 = NVPosition(6.0, 0, 3.5); 
    NVVector3f controlPoint2 = NVPosition(8.0, 0, 4.5); 
    NVVector3f endPoint = NVPosition(10.0, 0, 0.0); 
    // 實例話貝塞爾曲線對象 
    mMainPath = [[NVBezierPath alloc] initWithBezier:mContext Name:@"BezierPath"]; 
    // 設(shè)置曲線的精細(xì)程度 
    [mMainPath setSubdivision:mSubdivision]; 
    // 設(shè)置貝塞爾軌跡起始點 
    [mMainPath setPoints:startPoint EndPoint:endPoint]; 
    // 設(shè)置控制點 
    [mMainPath setControlPoints:controlPoint1 Point2:controlPoint2]; 
    // 描邊繪制 
    [mMainPath stroke]; 
   // 實例話動畫對象
 
    NVAnimationEffect *move = [[NVAnimationEffect alloc] initWithAnimation:@"moveAni" Context:self Widget:cube Duration:4.0]; 
    // 將貝塞爾曲線設(shè)置到動畫中 
    [move selectPath:mMainPath Type:TRANSLATE]; 
    // 是否循環(huán)播放動畫 
    [move setLoop:YES]; 
     
    // 將動畫對象添加到場景中 
    [self addAnimEffect:move]; 
     
    // 開始執(zhí)行運動 
    [move start];



運行項目,可以看到立方體按照自己設(shè)置的軌跡運動起來了。 

網(wǎng)頁題目:NVisionXR_iOS教程七——場景中物體運動
文章來源:http://bm7419.com/article48/igehep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、微信小程序網(wǎng)站策劃、標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)