87 lines
2.4 KiB
JavaScript
87 lines
2.4 KiB
JavaScript
|
|
sussyKey = null,
|
||
|
|
|
||
|
|
document.addEventListener("keyup", function(sussyListener) {
|
||
|
|
switch (sussyListener.keyCode) {
|
||
|
|
case 87:
|
||
|
|
sussyKey = "W";
|
||
|
|
break;
|
||
|
|
case 65:
|
||
|
|
sussyKey = "A";
|
||
|
|
break;
|
||
|
|
case 83:
|
||
|
|
sussyKey = "S";
|
||
|
|
break;
|
||
|
|
case 68:
|
||
|
|
sussyKey = "D";
|
||
|
|
break;
|
||
|
|
case 81:
|
||
|
|
sussyKey = "Q";
|
||
|
|
break;
|
||
|
|
case 88:
|
||
|
|
sussyKey = "X";
|
||
|
|
break;
|
||
|
|
case 90:
|
||
|
|
sussyKey = "Z";
|
||
|
|
break;
|
||
|
|
};
|
||
|
|
});
|
||
|
|
|
||
|
|
elements.controllable_pixel = {
|
||
|
|
color: "#FFFFFF",
|
||
|
|
colorOn: "#FFFF00",
|
||
|
|
behavior: behaviors.WALL,
|
||
|
|
state: "solid",
|
||
|
|
density: 2000,
|
||
|
|
conduct: 1,
|
||
|
|
hardness: 1,
|
||
|
|
tick: function(pixel) {
|
||
|
|
var xx = pixel.x
|
||
|
|
var yy = pixel.y
|
||
|
|
if(sussyKey !== null) {
|
||
|
|
switch (sussyKey) {
|
||
|
|
case "W":
|
||
|
|
tryMove(pixel,xx,yy-1)
|
||
|
|
if(shiftDown === 0) {
|
||
|
|
sussyKey = null;
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
case "A":
|
||
|
|
tryMove(pixel,xx-1,yy)
|
||
|
|
if(shiftDown === 0) {
|
||
|
|
sussyKey = null;
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
case "S":
|
||
|
|
tryMove(pixel,xx,yy+1)
|
||
|
|
if(shiftDown === 0) {
|
||
|
|
sussyKey = null;
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
case "D":
|
||
|
|
tryMove(pixel,xx+1,yy)
|
||
|
|
if(shiftDown === 0) {
|
||
|
|
sussyKey = null;
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
case "X":
|
||
|
|
explodeAt(xx,yy,4)
|
||
|
|
if(shiftDown === 0) {
|
||
|
|
sussyKey = null;
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
case "Z":
|
||
|
|
if (!pixel.charge && !pixel.chargeCD && !isEmpty(pixel.x,pixel.y,true)) {
|
||
|
|
pixel.charge = 1;
|
||
|
|
}
|
||
|
|
if(shiftDown === 0) {
|
||
|
|
sussyKey = null;
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
case "Q":
|
||
|
|
sussyKey = null;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
}
|