ビデオ: CubeConqueror introduction 2025
デフォルトでは、HTML5ゲームの加速度計は、完全に水平なニュートラルな位置をとります。つまり、デバイスがテーブル上に平らに横たわっていることを前提としています。しかし、これらはモバイルデバイスであり、ゲーマーはしばしば中立位置を他の場所にしたいと考えています。
傾斜制御を較正するための基本的な技術は、AXおよびAYのオフセット値を追跡することである。ユーザが再較正を選択すると、オフセット値が変更されて新たなニュートラル位置が作られる。関連するコードは次のとおりです。
<! - 1 - >accel。 htmlのvarのゲーム; varボール; var accel; var btnCalibrate; var offsetAX = 0; var offsetAY = 0; 関数init(){game = new Scene();ボール=新しいスプライト(ゲーム、 "redBall。png"、50、50); accel = new Accel(); btnCalibrate =新しいGameButton(「較正」); btnCalibrate。 setSize(100、100); btnCalibrate。 setPosition(100、100);ゲーム。 function(){ if(btnCalibrate。isClicked()){ offsetAY = accel。 getAY(); offsetAX = accel。 getAX(); } } 関数update(){ゲーム。 clear(); checkButton(); newDX = accel。 getAY() - offsetAY; newDY = accel。 getAX() - offsetAX; newDX * = -5; newDY * = -5;玉。 setDX(newDX);玉。 setDY(newDY);玉。 update();} どうにかしてキャリブレーションをトリガする必要があります。この例では、基本キャリブレーションボタンを追加します。どのように動作するのですか? <! - 2 - >
offsetAXおよびoffsetAY変数を追加します。
これらの2つの変数は、装置の中立位置が標準的なテーブル上の姿勢とどのくらい異なるかを示す。値ゼロで変数を開始します。-
キャリブレーションボタンを追加します。
この例では、ボタンをクリックしてユーザーが再較正することができます。
-
ボタンが押されたことを確認します。
ボタン押下を読むための関数が作成されました。
-
<! - 3 - >
ボタンを押すと、新しいオフセット値を取得します。
ボタンがアクティブになったら、Accelオブジェクトから現在のAXとAYの値を要求します。 -
すべてのフレームでaxとayからオフセットを減算します。
他の計算を行う前に、AXからoffsetAXを減算し、AYからoffsetAYを減算します。これにより、ボタンがクリックされた最後の時間にデバイスが設定されたように、新しい中立位置が効果的に設定されます。
-
キャリブレーションボタンは非常に簡単に実装できますが、キャリブレーションは自動的に行われることがあります。必要に応じて、init()関数中にoffsetAXとoffsetAYを指定するだけで、init()関数中のデバイスの姿勢がデフォルトの姿勢になります。これにより、ユーザーはキャリブレーションをリセットすることはできませんが、めったに使用されないボタンで画面が乱れることはありません。
