概要
キーボードやマウス、スマホのタッチ操作などのイベントを処理する機能。
実装例
マウス
mouse.js
var Mouse = pc.createScript('mouse');
Mouse.prototype.initialize = function() {
this.app.mouse.on(pc.EVENT_MOUSEDOWN, this.mouseDown, this);
};
Mouse.prototype.mouseDown = function(event) {
console.log("X: " + event.x.toString() + "Y: " + event.y.toString());
};
Mouse.prototype.update = function(dt) {
// ホールドはupdateで取れる
if( this.app.mouse.isPressed(pc.MOUSEBUTTON_LEFT) ){
console.log("Pressing Left Mouse Button.")
}
};
initializeでthis.app.mouseに実行したい処理とイベントのキーを渡す事で実装する。
もしくは、wasPressedをupdateで呼び出して押されたかをチェックする事で実装もできる。(離した瞬間はwasReleased)
マウスボタンを押し続けている(ホールド)間に処理を実行したい場合はisPressedで状態を取れる。
Event | 内容 |
---|---|
pc.EVENT_MOUSEDOWN | 押された時 |
pc.EVENT_MOUSEUP | 離した時 |
pc.EVENT_MOUSEMOVE | 移動した時 |
pc.EVENT_MOUSEWHEEL | ホイールを動かした時 |
キーボード
keyboard.js
var Keyboard = pc.createScript('keyboard');
Keyboard.prototype.initialize = function() {
this.app.keyboard.on(pc.EVENT_KEYDOWN, this.onKeyDown, this);
};
Keyboard.prototype.onKeyDown = function(event) {
// event.keyにキーコードが入っている
if( event.key === pc.KEY_A ){
console.log( "Press A" );
}
};
initializeでthis.app.keyboardに実行したい処理とイベントのキーを渡す事で実装する。
マウス同様、isPressedやwasPressedがあるので、ホールドの検知やupdateでの記述が可能。
Event | 内容 |
---|---|
pc.EVENT_KEYDOWN | 押された時 |
pc.EVENT_KEYUP | 離した時 |
タッチ(スマホなど)
touch.js
var Touch = pc.createScript('touch');
Touch.prototype.initialize = function() {
this.app.touch.on(pc.EVENT_TOUCHSTART, this.touchStart, this);
};
Touch.prototype.touchStart = function(event) {
// event.touchesに画面に触れた場所の配列が入ってくる
if( event.touches.length > 0 ){
console.log("X: " + event.touches[0].x.toString() + "Y: " + event.touches[0].y.toString());
}
};
initializeでthis.app.touchに実行したい処理とイベントのキーを渡す事で実装する。
タッチイベントはマウスとキーボードと違い、update内で検知を行う関数はない。
Event | 内容 |
---|---|
pc.EVENT_TOUCHSTART | 触れた時 |
pc.EVENT_TOUCHEND | 離した時 |
pc.EVENT_TOUCHMOVE | スワイプされた時 |
pc.EVENT_TOUCHCANCEL | 何かしらの理由で、タッチをキャンセルされた時 |