Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var isBaddieMovable = function(moveLeft, moveTop) {
- var movable, newLeft, newTop, max;
- console.log("Checking if baddie collided with the content walls");
- movable = true;
- // Get baddie's new position if moved
- newLeft = left + moveLeft*step;
- newTop = top + moveTop*step;
- console.log("Checking collision at", newLeft, newTop);
- // Left wall collide check - check if newLeft outside content
- var condition = false;
- if(newLeft < 0) {
- movable = false;
- console.log("Baddie collided with left wall");
- }
- condition = false;
- // Top wall collide check - check if newTop is outside content
- if(newTop < 0) {
- movable = false;
- console.log("Baddie collided with top wall");
- }
- // Right wall collide check
- max = 400;
- if(newLeft + baddie.offsetWidth > max) {
- movable = false;
- console.log("Baddie collided with right wall");
- }
- // Bottom wall collide check
- max = 300;
- if(newTop + baddie.offsetHeight > max) {
- movable = false;
- console.log("Baddie collided with bottom wall");
- }
- // Return if baddie collided
- return movable;
- };
- Console:
- Baddie will step 50 pixels each move
- Baddie starts at 0,0
- 37 was pressed
- Checking if baddie collided with the content walls
- Checking collision at -50 0
- Baddie collided with left wall
- var moveBaddie = function(moveLeft, moveTop) {
- left += moveLeft*step;
- top += moveTop*step;
- baddie.style.left = left + "px";
- baddie.style.top = top + "px";
- };
- (function(){
- 'use strict';
- var baddie, content;
- var step, left, top;
- baddie = document.getElementById("baddie");
- content = document.getElementById("content");
- step = baddie.offsetWidth;
- console.log("Baddie will step " + step + " pixels each move");
- // Gets starting position of baddie
- left = baddie.offsetLeft;
- top = baddie.offsetTop;
- console.log("Baddie starts at " + left + "," + top);
- /* ------------------------------------
- * EVENTS
- */
- // Triggers action on keypress
- document.addEventListener("keydown", function(event) {
- var key;
- // Gets what key was pressed as number
- key = event.keyCode || event.which;
- console.log(key + " was pressed");
- // Switch case to decide where baddie is to go
- switch(key) {
- case 37: {
- isBaddieMovable(-1, 0);
- return moveBaddie(-1, 0)+turnLeft();
- }
- break;
- case 38:{
- isBaddieMovable(0, -1);
- return moveBaddie( 0, -1);
- break;
- }
- case 39: {
- isBaddieMovable(1, 0);
- return moveBaddie(1, 0)+turnRight();
- break;
- }
- case 40: {
- isBaddieMovable(0, 1);
- return moveBaddie(0, 1);
- break;
- }
- default:
- console.log("Nothing happened with the gameboard");
- return true;
- }
- // Baddie action was performed - prevent button default
- event.preventDefault();
- });
- break;
- case 38:
- if (isBaddieMovable(0, -1))
- return moveBaddie( 0, -1);
- break;
- case 39:
- if (isBaddieMovable(1, 0))
- return moveBaddie(1, 0)+turnRight();
- break;
- case 40:
- if (isBaddieMovable(0, 1))
- return moveBaddie(0, 1);
- break;
- switch(key) {
- case 37:
- if (isBaddieMovable(-1, 0))
- return moveBaddie(-1, 0)+turnLeft();
- break;
- case 38:
- if (isBaddieMovable(0, -1))
- return moveBaddie( 0, -1);
- break;
- case 39:
- if (isBaddieMovable(1, 0))
- return moveBaddie(1, 0)+turnRight();
- break;
- case 40:
- if (isBaddieMovable(0, 1))
- return moveBaddie(0, 1);
- break;
- var movementToDo = {left:0,up:0};
- var couldMove = false;
- switch(key) {
- case 37:
- movementToDo.left= -1;
- movementToDo.up = 0;
- break;
- case 38:
- movementToDo.left= 0;
- movementToDo.up = -1;
- break;
- case 39:
- movementToDo.left= 1;
- movementToDo.up = 0;
- break;
- case 40:
- movementToDo.left= 0;
- movementToDo.up = 1;
- break;
- default:
- console.log("Nothing happened with the gameboard");
- return true;
- }
- if(isBaddieMovable(movementToDo.left,movementToDo.up)){
- moveBaddie(movementToDo.left,movementToDo.up);
- }
- var isBaddieMovable = function(moveLeft, moveTop) {
- var newLeft, newTop, max;
- console.log("Checking if baddie collided with the content walls");
- // Get baddie's new position if moved
- newLeft = left + moveLeft*step;
- newTop = top + moveTop*step;
- console.log("Checking collision at", newLeft, newTop);
- // Left wall collide check - check if newLeft outside content
- if(newLeft < 0) {
- console.log("Baddie collided with left wall");
- return false;
- }
- if(newTop < 0) {
- console.log("Baddie collided with top wall");
- return false;
- }
- // Right wall collide check
- max = 400;
- if(newLeft + baddie.offsetWidth > max) {
- console.log("Baddie collided with right wall");
- return false;
- }
- // Bottom wall collide check
- max = 300;
- if(newTop + baddie.offsetHeight > max) {
- console.log("Baddie collided with bottom wall");
- return false;
- }
- // Return if baddie collided
- return true;
- };
Add Comment
Please, Sign In to add comment