adjusted movement
This commit is contained in:
parent
98aa53685a
commit
3cc0125afb
|
|
@ -1,4 +1,6 @@
|
|||
/* player movement logic */
|
||||
currentKey = 0;
|
||||
lastKey = 0;
|
||||
|
||||
function setVars() {
|
||||
let player = document.getElementById("player");
|
||||
|
|
@ -12,18 +14,18 @@ function verticalMovement(keyCode) {
|
|||
switch(keyCode) {
|
||||
case 38: /*Up*/
|
||||
case 87: /*W*/
|
||||
var element = document.elementFromPoint(playerLeft, playerTop-10);
|
||||
var element = document.elementFromPoint(playerLeft, playerTop-5);
|
||||
if (element.classList.contains("sky") == false) { /*change to only trigger when not grass*/
|
||||
player.style.top = (playerTop - 10) + "px";
|
||||
player.style.top = (playerTop - 5) + "px";
|
||||
}
|
||||
player.className = "character walk up";
|
||||
console.log("Up");
|
||||
break;
|
||||
case 40: /*Down*/
|
||||
case 83: /*S*/
|
||||
var element = document.elementFromPoint(playerLeft, playerTop+10);
|
||||
var element = document.elementFromPoint(playerLeft, playerTop+5);
|
||||
if (element.classList.contains("sky") == false) {
|
||||
player.style.top = (playerTop + 10) + "px";
|
||||
player.style.top = (playerTop + 5) + "px";
|
||||
}
|
||||
player.className = "character walk down";
|
||||
console.log("Down");
|
||||
|
|
@ -37,18 +39,18 @@ function horizontalMovement(keyCode) {
|
|||
switch(keyCode) {
|
||||
case 37: /*Left*/
|
||||
case 65: /*A*/
|
||||
var element = document.elementFromPoint(playerLeft-10, playerTop);
|
||||
var element = document.elementFromPoint(playerLeft-5, playerTop);
|
||||
if (element.classList.contains("sky") == false) {
|
||||
player.style.left = (playerLeft - 10) + "px";
|
||||
player.style.left = (playerLeft - 5) + "px";
|
||||
}
|
||||
player.className = "character walk left";
|
||||
console.log("Left");
|
||||
break;
|
||||
case 39: /*Right*/
|
||||
case 68: /*D*/
|
||||
var element = document.elementFromPoint(playerLeft+10, playerTop);
|
||||
var element = document.elementFromPoint(playerLeft+5, playerTop);
|
||||
if (element.classList.contains("sky") == false) {
|
||||
player.style.left = (playerLeft + 10) + "px";
|
||||
player.style.left = (playerLeft + 5) + "px";
|
||||
}
|
||||
player.className = "character walk right";
|
||||
console.log("Right");
|
||||
|
|
@ -56,13 +58,38 @@ function horizontalMovement(keyCode) {
|
|||
}
|
||||
}
|
||||
|
||||
function move(event) {
|
||||
verticalMovement(event.keyCode);
|
||||
horizontalMovement(event.keyCode);
|
||||
function move() {
|
||||
if (currentKey == 0) {
|
||||
verticalMovement(lastKey);
|
||||
horizontalMovement(lastKey);
|
||||
if (lastKey != 0) {
|
||||
currentKey = lastKey;
|
||||
}
|
||||
}
|
||||
else {
|
||||
verticalMovement(currentKey);
|
||||
horizontalMovement(currentKey);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function getKey(event) {
|
||||
lastKey = currentKey;
|
||||
currentKey = event.keyCode;
|
||||
}
|
||||
|
||||
function stop(event) {
|
||||
switch(event.keyCode) {
|
||||
if (currentKey == lastKey) {
|
||||
currentKey = 0;
|
||||
lastKey = 0;
|
||||
}
|
||||
else if (event.keyCode == currentKey) {
|
||||
currentKey = 0;
|
||||
}
|
||||
else if (event.keyCode == lastKey) {
|
||||
lastKey = 0;
|
||||
}
|
||||
switch(event.keyCode) {
|
||||
case 38: /*Up*/
|
||||
case 87: /*W*/
|
||||
player.className = "character stand up";
|
||||
|
|
@ -81,5 +108,4 @@ function stop(event) {
|
|||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,8 +1,9 @@
|
|||
/*Add events to webpage*/
|
||||
|
||||
function loadScripts() {
|
||||
document.addEventListener("keydown", move)
|
||||
document.addEventListener("keydown", getKey)
|
||||
document.addEventListener("keyup", stop)
|
||||
setInterval(move, 10);
|
||||
document.getElementById("start").addEventListener("click", startGame)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue