211 lines
3.8 KiB
JavaScript
Executable File
211 lines
3.8 KiB
JavaScript
Executable File
/**
|
|
* Kepler - Core
|
|
*
|
|
* All rights reserved.
|
|
*
|
|
* Author: Kaj Dijksta
|
|
*
|
|
**/
|
|
import keplerEngine from './kepler.js';
|
|
import {vector2, vector3} from './math.js';
|
|
//import vector2 from './math.js';
|
|
//import vector3 from './math.js';
|
|
|
|
/**
|
|
* Event Manager
|
|
* Manage all mouse and keyboard events in this class
|
|
*/
|
|
class eventManager {
|
|
|
|
constructor( viewport ){
|
|
|
|
this.tempMouse = new vector2(0,0);
|
|
this.oldMousPos = new vector2(0,0);
|
|
this.mouseVerschil = new vector2(0,0);
|
|
this.mouseDown = new vector3(0,0,0);
|
|
|
|
|
|
$(viewport.canvas).data("viewport", this.viewport);
|
|
|
|
viewport.canvas.addEventListener("mousemove", function(e){
|
|
|
|
kepler.viewport = viewport;
|
|
viewport.events.mouseMoveHandler(e, viewport);
|
|
|
|
});
|
|
viewport.canvas.addEventListener("mousedown", function(e){ viewport.events.mouseDownHandler(e, viewport); });
|
|
viewport.canvas.addEventListener("mouseup", function(e){ viewport.events.mouseUpHandler(e, viewport); });
|
|
|
|
window.addEventListener("keydown", function(e){ viewport.events.keyDownHandler(e, kepler.viewport); });
|
|
window.addEventListener("keyup", function(e){ viewport.events.keyUpHandler(e, kepler.viewport); });
|
|
|
|
this.lastTime = new Date().getTime();
|
|
this.elapsed = 0;
|
|
this.timeNow = 0;
|
|
this.clientMouse = new vector2(0,0);
|
|
this.keysDown = false;
|
|
|
|
}
|
|
|
|
setViewport( viewport ){
|
|
|
|
this.viewport = viewport;
|
|
|
|
}
|
|
|
|
/**
|
|
* Mouse over event handler.
|
|
* @param {(event)} event.
|
|
**/
|
|
mouseMoveHandler ( e, viewport ) {
|
|
// console.log(viewport);
|
|
this.tempMouse = [ e.screenX, e.screenY ];
|
|
this.clientMouse = [ e.screenX , e.screenY ];
|
|
|
|
if( this.mouseDown[1] || this.mouseDown[2] )
|
|
this.lastTime = new Date().getTime();
|
|
|
|
if(!this.oldMousPos)
|
|
this.oldMousPos = this.tempMouse;
|
|
};
|
|
|
|
|
|
/**
|
|
* Mouse down event handler.
|
|
* @param {(event)} event.
|
|
*/
|
|
mouseDownHandler (e, viewport) {
|
|
|
|
switch(e.button)
|
|
{
|
|
case 0:
|
|
this.mouseDown[1] = true;
|
|
if(this.keysDown == 16)
|
|
readPixel();
|
|
break;
|
|
case 1:
|
|
this.mouseDown[0] = true;
|
|
break;
|
|
case 2:
|
|
this.mouseDown[2] = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Mouse up event handler
|
|
* @param {(event)} event.
|
|
**/
|
|
mouseUpHandler ( e, viewport ) {
|
|
|
|
switch(e.button)
|
|
{
|
|
case 0:
|
|
this.mouseDown[1] = false;
|
|
break;
|
|
case 1:
|
|
this.mouseDown[0] = false;
|
|
break;
|
|
case 2:
|
|
this.mouseDown[2] = false;
|
|
break;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Key down event handler
|
|
**/
|
|
keyDownHandler ( e, viewport ) {
|
|
|
|
var mainPlayer = viewport.mainPlayer;
|
|
|
|
switch(e.keyCode) {
|
|
case 68: // a
|
|
|
|
mainPlayer.right = false;
|
|
mainPlayer.left = true;
|
|
break;
|
|
case 65: // d
|
|
mainPlayer.left = false;
|
|
mainPlayer.right = true;
|
|
break;
|
|
case 87: //w
|
|
mainPlayer.backward = false;
|
|
mainPlayer.forward = true;
|
|
break;
|
|
case 83: //s
|
|
mainPlayer.forward = false;
|
|
mainPlayer.backward = true;
|
|
break;
|
|
case 16: //shift
|
|
viewport.mainPlayer.moveSpeed = .39;
|
|
this.keysDown = 16;
|
|
break;
|
|
case 90:
|
|
mainPlayer.down = true;
|
|
break;
|
|
case 32:
|
|
mainPlayer.up = true;
|
|
break;
|
|
case 67://v
|
|
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
this.keysDown = e.keyCode;
|
|
|
|
}
|
|
|
|
/**
|
|
* Key up event handler
|
|
**/
|
|
keyUpHandler(e, viewport)
|
|
{
|
|
|
|
var mainPlayer = viewport.mainPlayer;
|
|
|
|
switch(e.keyCode)
|
|
{
|
|
case 65: // a
|
|
//g_animate = false;
|
|
break;
|
|
}
|
|
|
|
switch(e.keyCode) {
|
|
case 68: // a
|
|
mainPlayer.left = false;
|
|
break;
|
|
case 65: // d
|
|
mainPlayer.right = false;
|
|
break;
|
|
case 87: //w
|
|
mainPlayer.forward = false;
|
|
break;
|
|
case 83: //s
|
|
mainPlayer.backward = false;
|
|
break;
|
|
case 16: // shift
|
|
viewport.mainPlayer.moveSpeed = .3;
|
|
break;
|
|
case 90:
|
|
mainPlayer.down = false;
|
|
break;
|
|
case 32:
|
|
mainPlayer.up = false;
|
|
|
|
break;
|
|
case 67://v
|
|
|
|
break;
|
|
}
|
|
|
|
this.keysDown = false;
|
|
}
|
|
|
|
}
|
|
|
|
export {eventManager as default};
|