天天看點

Web遊戲開發程式設計:最神奇的“觸覺振動”

談起“觸覺回報”,大家可能從字面上并不能了解它是如何工作的。觸覺回報是指在一些支援觸摸電子裝置中嵌入的技術。如果你手裡剛好有一個觸摸屏手機,你會經常碰到這種體驗。觸覺回報機制響應觸摸、模拟鍵入靈敏度高。通過輕微的質感振動可以觸發這種響應。而且這種響應不受真實的裝置操作幹擾。

      Vibration API為宿主裝置提供“觸覺回報式”程式設計機制。Vibration API常用于Web遊戲開發人員,處理一些與遊戲相關的觸覺操作。

  Vibration 接口定義如下:

Navigator implements Vibration;

所有Navigator類型的執行個體均實作Vibration接口。

  Vibration 接口方法定義如下:

interface Vibration {

  void vibrate (unsigned long time) raises (NotSupportedError);

  void vibrate (unsigned long[] pattern) raises (NotSupportedError);

  };

1.vibrate (unsigned long time)方法說明

  參數: time

  參數類型: unsigned long

  參數是否為NULL:否

  參數必選/可選:必選

  參數描述: 振動時間(毫秒)

  異常:NotSupportedError

  描述:當time參數超過規定時間,則抛出異常

  傳回值:Void

  2.vibrate (unsigned long[] pattern)方法說明

  參數: pattern

  參數類型: unsigned long[]

  參數描述: 時間數組。數組偶數下标表示振動時間(毫秒),奇數下标表示間隔時間(毫秒)。

  描述:當pattern數組長度超過規定數值,或者數組超過規定時間,則抛出異常。

  vibrate (unsigned long[] pattern)方法算法如下:

  1. Pattern數組長度為0,則程式退出。

  2. 如果pattern數組長度超過規定數值,或者數組超過規定時間,則抛出異常。

  3. 保證pattern數組長度為偶數,否則去掉最後一個元素。

  4. 周遊pattern數組長度,遇到奇數,則該時間為振動時間(毫秒),遇到偶數,則該時間為間隔時間(毫秒).

  執行個體分析

  執行個體1 —— 觸屏裝置振動1秒鐘

         // vibrate for 1 second

  navigator.vibrate(1000);

  // or alternatively

  navigator.vibrate([1000]);

執行個體2 —— 觸屏裝置振動1秒鐘,靜止0.5秒後,再次振動2秒鐘。

navigator.vibrate([1000, 500, 2000]);

執行個體3 —— 觸屏裝置不振動。

   navigator.vibrate(0);

  navigator.vibrate([]);

        總之,觸覺回報可以激起裝置的振動,所謂的觸覺播放軟體實際上重在控制執行器振動的激烈程度以及何時振動。許多觸摸屏手機支援觸覺回報,是以使用者能夠準确知道何時觸碰了螢幕。有些遊戲控制器可以使用觸覺回報來增強球員與視訊遊戲的互動。

本文轉自 wws5201985 51CTO部落格,原文連結:http://blog.51cto.com/wws5201985/785810,如需轉載請自行聯系原作者

繼續閱讀