first commit
|
|
@ -0,0 +1,46 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Assignment 2</title>
|
||||||
|
<link rel="stylesheet" href="game.css" />
|
||||||
|
<script src="scripts/launch.js"></script>
|
||||||
|
<script src="scripts/control.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="hud">
|
||||||
|
<ul class="health">
|
||||||
|
<li></li>
|
||||||
|
<li></li>
|
||||||
|
<li></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="start" id="start">
|
||||||
|
Start
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sky">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="player" class="character stand down">
|
||||||
|
<div class="head">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="body">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="weapon bow">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="alien" id="alien">
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,110 @@
|
||||||
|
var upPressed = false;
|
||||||
|
var downPressed = false;
|
||||||
|
var leftPressed = false;
|
||||||
|
var rightPressed = false;
|
||||||
|
var lastPressed = false;
|
||||||
|
|
||||||
|
function keyup(event) {
|
||||||
|
var player = document.getElementById('player');
|
||||||
|
if (event.keyCode == 37) {
|
||||||
|
leftPressed = false;
|
||||||
|
lastPressed = 'left';
|
||||||
|
}
|
||||||
|
if (event.keyCode == 39) {
|
||||||
|
rightPressed = false;
|
||||||
|
lastPressed = 'right';
|
||||||
|
}
|
||||||
|
if (event.keyCode == 38) {
|
||||||
|
upPressed = false;
|
||||||
|
lastPressed = 'up';
|
||||||
|
}
|
||||||
|
if (event.keyCode == 40) {
|
||||||
|
downPressed = false;
|
||||||
|
lastPressed = 'down';
|
||||||
|
}
|
||||||
|
|
||||||
|
player.className = 'character stand ' + lastPressed;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function move() {
|
||||||
|
var player = document.getElementById('player');
|
||||||
|
var positionLeft = player.offsetLeft;
|
||||||
|
var positionTop = player.offsetTop;
|
||||||
|
if (downPressed) {
|
||||||
|
var newTop = positionTop+1;
|
||||||
|
|
||||||
|
var element = document.elementFromPoint(player.offsetLeft, newTop+32);
|
||||||
|
if (element.classList.contains('sky') == false) {
|
||||||
|
player.style.top = newTop + 'px';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (leftPressed == false) {
|
||||||
|
if (rightPressed == false) {
|
||||||
|
player.className = 'character walk down';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (upPressed) {
|
||||||
|
var newTop = positionTop-1;
|
||||||
|
|
||||||
|
var element = document.elementFromPoint(player.offsetLeft, newTop);
|
||||||
|
if (element.classList.contains('sky') == false) {
|
||||||
|
player.style.top = newTop + 'px';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (leftPressed == false) {
|
||||||
|
if (rightPressed == false) {
|
||||||
|
player.className = 'character walk up';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (leftPressed) {
|
||||||
|
var newLeft = positionLeft-1;
|
||||||
|
|
||||||
|
var element = document.elementFromPoint(newLeft, player.offsetTop);
|
||||||
|
if (element.classList.contains('sky') == false) {
|
||||||
|
player.style.left = newLeft + 'px';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
player.className = 'character walk left';
|
||||||
|
}
|
||||||
|
if (rightPressed) {
|
||||||
|
var newLeft = positionLeft+1;
|
||||||
|
|
||||||
|
var element = document.elementFromPoint(newLeft+32, player.offsetTop);
|
||||||
|
if (element.classList.contains('sky') == false) {
|
||||||
|
player.style.left = newLeft + 'px';
|
||||||
|
}
|
||||||
|
|
||||||
|
player.className = 'character walk right';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function keydown(event) {
|
||||||
|
if (event.keyCode == 37) {
|
||||||
|
leftPressed = true;
|
||||||
|
}
|
||||||
|
if (event.keyCode == 39) {
|
||||||
|
rightPressed = true;
|
||||||
|
}
|
||||||
|
if (event.keyCode == 38) {
|
||||||
|
upPressed = true;
|
||||||
|
}
|
||||||
|
if (event.keyCode == 40) {
|
||||||
|
downPressed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function myLoadFunction() {
|
||||||
|
timeout = setInterval(move, 10);
|
||||||
|
document.addEventListener('keydown', keydown);
|
||||||
|
document.addEventListener('keyup', keyup);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', myLoadFunction);
|
||||||
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 522 B |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 362 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 960 B |
|
After Width: | Height: | Size: 916 B |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 568 B |
|
After Width: | Height: | Size: 560 B |
|
After Width: | Height: | Size: 300 B |
|
After Width: | Height: | Size: 293 B |
|
After Width: | Height: | Size: 345 B |
|
After Width: | Height: | Size: 362 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 941 B |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 228 B |
|
After Width: | Height: | Size: 253 B |
|
After Width: | Height: | Size: 278 B |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 189 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
|
@ -0,0 +1 @@
|
||||||
|
/* logic for enemy movement and firing */
|
||||||
|
|
@ -0,0 +1,85 @@
|
||||||
|
/* player movement logic */
|
||||||
|
|
||||||
|
function setVars() {
|
||||||
|
let player = document.getElementById("player");
|
||||||
|
}
|
||||||
|
|
||||||
|
document.onloadend = setVars;
|
||||||
|
|
||||||
|
function verticalMovement(keyCode) {
|
||||||
|
var playerLeft = player.offsetLeft;
|
||||||
|
var playerTop = player.offsetTop;
|
||||||
|
switch(keyCode) {
|
||||||
|
case 38: /*Up*/
|
||||||
|
case 87: /*W*/
|
||||||
|
var element = document.elementFromPoint(playerLeft, playerTop-10);
|
||||||
|
if (element.classList.contains("sky") == false) { /*change to only trigger when not grass*/
|
||||||
|
player.style.top = (playerTop - 10) + "px";
|
||||||
|
}
|
||||||
|
player.className = "character walk up";
|
||||||
|
console.log("Up");
|
||||||
|
break;
|
||||||
|
case 40: /*Down*/
|
||||||
|
case 83: /*S*/
|
||||||
|
var element = document.elementFromPoint(playerLeft, playerTop+10);
|
||||||
|
if (element.classList.contains("sky") == false) {
|
||||||
|
player.style.top = (playerTop + 10) + "px";
|
||||||
|
}
|
||||||
|
player.className = "character walk down";
|
||||||
|
console.log("Down");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function horizontalMovement(keyCode) {
|
||||||
|
var playerLeft = player.offsetLeft;
|
||||||
|
var playerTop = player.offsetTop;
|
||||||
|
switch(keyCode) {
|
||||||
|
case 37: /*Left*/
|
||||||
|
case 65: /*A*/
|
||||||
|
var element = document.elementFromPoint(playerLeft-10, playerTop);
|
||||||
|
if (element.classList.contains("sky") == false) {
|
||||||
|
player.style.left = (playerLeft - 10) + "px";
|
||||||
|
}
|
||||||
|
player.className = "character walk left";
|
||||||
|
console.log("Left");
|
||||||
|
break;
|
||||||
|
case 39: /*Right*/
|
||||||
|
case 68: /*D*/
|
||||||
|
var element = document.elementFromPoint(playerLeft+10, playerTop);
|
||||||
|
if (element.classList.contains("sky") == false) {
|
||||||
|
player.style.left = (playerLeft + 10) + "px";
|
||||||
|
}
|
||||||
|
player.className = "character walk right";
|
||||||
|
console.log("Right");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function move(event) {
|
||||||
|
verticalMovement(event.keyCode);
|
||||||
|
horizontalMovement(event.keyCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
function stop(event) {
|
||||||
|
switch(event.keyCode) {
|
||||||
|
case 38: /*Up*/
|
||||||
|
case 87: /*W*/
|
||||||
|
player.className = "character stand up";
|
||||||
|
break;
|
||||||
|
case 40: /*Down*/
|
||||||
|
case 83: /*S*/
|
||||||
|
player.className = "character stand down";
|
||||||
|
break;
|
||||||
|
case 37: /*Left*/
|
||||||
|
case 65: /*A*/
|
||||||
|
player.className = "character stand left";
|
||||||
|
break;
|
||||||
|
case 39: /*Right*/
|
||||||
|
case 68: /*D*/
|
||||||
|
player.className = "character stand right";
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
/* enemy spawning logic */
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
/*Add events to webpage*/
|
||||||
|
|
||||||
|
function loadScripts() {
|
||||||
|
document.addEventListener("keydown", move)
|
||||||
|
document.addEventListener("keyup", stop)
|
||||||
|
document.getElementById("start").addEventListener("click", startGame)
|
||||||
|
}
|
||||||
|
|
||||||
|
function startGame() {
|
||||||
|
var button = document.getElementById("start");
|
||||||
|
button.style.display = "none";
|
||||||
|
}
|
||||||
|
document.addEventListener("DOMContentLoaded", loadScripts);
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
/*Logic for player lives and firing ability */
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
/* logic for bombs */
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
/* score tracking and scoreboard logic */
|
||||||