Keyboard operations

This commit is contained in:
Devine Lu Linvega 2017-11-17 19:45:15 +13:00
parent bdfabc4c06
commit d506abbda3
2 changed files with 62 additions and 21 deletions

View File

@ -147,22 +147,8 @@ function Dotgrid(width,height,grid_x,grid_y,block_x,block_y,thickness = 3,lineca
if(dotgrid.translation){ dotgrid.translation.to = pos; }
if(pos.x>0) {
this.cursor.style.visibility = "hidden"
} else {
if(this.cursor.style.visibility == "hidden") {
this.cursor.style.transition = "initial"
}
this.cursor.style.visibility = "visible"
this.cursor.style.left = Math.floor(-(pos.x-this.grid_width));
this.cursor.style.top = Math.floor(pos.y+this.grid_height);
this.cursor_coord.className = -pos.x > this.width/2 ? "fl left" : "fl"
this.cursor_coord.textContent = parseInt(-pos.x/this.grid_width)+","+parseInt(pos.y/this.grid_height);
window.setTimeout(() => dotgrid.cursor.style.transition = "all 50ms", 17 /*one frame*/)
}
dotgrid.move_cursor(pos)
dotgrid.guide.update();
}
this.mouse_up = function(e)
@ -181,10 +167,32 @@ function Dotgrid(width,height,grid_x,grid_y,block_x,block_y,thickness = 3,lineca
dotgrid.translation = null;
this.add_point(pos)
this.draw();
}
this.move_cursor = function(pos)
{
if(pos.x>0) {
this.cursor.style.visibility = "hidden"
} else {
if(this.cursor.style.visibility == "hidden") {
this.cursor.style.transition = "initial"
}
this.cursor.style.visibility = "visible"
this.cursor.style.left = Math.floor(-(pos.x-this.grid_width));
this.cursor.style.top = Math.floor(pos.y+this.grid_height);
this.cursor_coord.className = -pos.x > this.width/2 ? "fl left" : "fl"
this.cursor_coord.textContent = parseInt(-pos.x/this.grid_width)+","+parseInt(pos.y/this.grid_height);
window.setTimeout(() => dotgrid.cursor.style.transition = "all 50ms", 17 /*one frame*/)
}
}
this.add_point = function(pos)
{
if(from === null){ this.set_from(pos.scale(1/this.scale)); }
else if(to === null){ this.set_to(pos.scale(1/this.scale)); }
else{ this.set_end(pos.scale(1/this.scale)); }
this.draw();
}
this.handle_at = function(pos)
@ -276,17 +284,23 @@ function Dotgrid(width,height,grid_x,grid_y,block_x,block_y,thickness = 3,lineca
this.mod_move = function(move)
{
if(!to && !end && from){
this.set_from(new Pos(from.x-(move.x),from.y+(move.y)))
var pos = new Pos(from.x-(move.x),from.y+(move.y))
this.set_from(pos)
this.move_cursor(pos)
this.draw();
return;
}
if(!end && to){
this.set_to(new Pos(to.x-(move.x),to.y+(move.y)))
var pos = new Pos(to.x-(move.x),to.y+(move.y))
this.set_to(pos)
this.move_cursor(pos)
this.draw();
return;
}
if(end){
this.set_end(new Pos(end.x-(move.x),end.y+(move.y)))
var pos = new Pos(end.x-(move.x),end.y+(move.y))
this.set_end(pos)
this.move_cursor(pos)
this.draw();
return;
}

View File

@ -27,9 +27,15 @@ function Keyboard()
return;
}
switch(e.key){
var numbers = ["0","1","2","3","4","5","6","7","8","9"]
if(numbers.indexOf(e.key) > -1 || e.code == "Digit0" || e.keyCode == 48){
keyboard.cheatcode(e.key);
return;
}
else{
this.code_history = "";
}
switch(e.keyCode) {
case 65 : dotgrid.draw_arc(e.shiftKey ? "1,0" : "0,0"); break; // 'a/A'
case 83 : dotgrid.draw_arc(e.shiftKey ? "1,1" : "0,1"); break; // 's/S'
@ -68,4 +74,25 @@ function Keyboard()
}
dotgrid.draw();
}
this.code_history = "";
this.cheatcode = function(key)
{
if(key.length != 1){ return; }
this.code_history += key;
if(this.code_history.length == 2){
var x = this.code_history.substr(0,2);
var y = 15;
dotgrid.move_cursor(new Pos(x * -15,y * 15))
}
if(this.code_history.length > 3){
var x = this.code_history.substr(0,2);
var y = this.code_history.substr(2,2);
dotgrid.add_point(new Pos(x * -15,y * 15))
dotgrid.move_cursor(new Pos(x * -15,y * 15))
this.code_history = "";
}
}
}