Stanley's update
This commit is contained in:
parent
807dbe828b
commit
64dae6aa8c
108
Script.js
108
Script.js
@ -4,6 +4,12 @@ var canvasWidth = 1280;
|
||||
var canvasHeight = 650;
|
||||
var c = undefined;
|
||||
var ctx = undefined;
|
||||
var gameStarted = false;
|
||||
var musicMuted = false;
|
||||
/// 90 FPS (Cause I got motion sickness while playing our game fr)
|
||||
let lastFrameTime = 0;
|
||||
const frameInterval = 1000 / 30; // 90 FPS limit
|
||||
// 90 FPS mark (change the const x/x to what fps you want)
|
||||
|
||||
var game = {
|
||||
level: 1,
|
||||
@ -33,14 +39,30 @@ bg1.src = "img/bg_1.png";
|
||||
var bg2 = new Image();
|
||||
bg2.src = "img/bg_2.png";
|
||||
|
||||
var enemyImgArray = [];
|
||||
enemyImgArray.length = 7;
|
||||
|
||||
var enemy1 = new Image();
|
||||
enemy1.src = "img/alien_0.png";
|
||||
|
||||
|
||||
var enemyImgArray = [];
|
||||
enemyImgArray.length = 4;
|
||||
|
||||
//Stanley
|
||||
|
||||
for (var i = 0; i < enemyImgArray.length; i++) {
|
||||
enemyImgArray[i] = new Image();
|
||||
enemyImgArray[i].src = 'img/alien_' + [i] + '.png';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
var missilesArray = [];
|
||||
|
||||
|
||||
|
||||
var enemyShipArray = [];
|
||||
|
||||
var backgroundMusic = document.createElement("audio");
|
||||
backgroundMusic.src = "music/Muriel-BobbyRichards.mp3";
|
||||
|
||||
@ -91,14 +113,21 @@ function init() {
|
||||
};
|
||||
}
|
||||
|
||||
function gameLoop() {
|
||||
if (!gameStarted) return;
|
||||
//Aku ganti function game loop that follows the 90FPS Cap rule
|
||||
function gameLoop(timestamp) {
|
||||
if (!gameStarted) return;
|
||||
|
||||
clearGame();
|
||||
updateGame();
|
||||
drawGame();
|
||||
requestAnimationFrame(gameLoop);
|
||||
if (timestamp - lastFrameTime >= frameInterval) {
|
||||
lastFrameTime = timestamp;
|
||||
|
||||
clearGame();
|
||||
updateGame();
|
||||
drawGame();
|
||||
}
|
||||
|
||||
requestAnimationFrame(gameLoop);
|
||||
}
|
||||
// End of 90fps mark
|
||||
|
||||
function keyDownPressed(e) {
|
||||
if (e.keyCode == 87) {
|
||||
@ -154,6 +183,8 @@ function clearGame() {
|
||||
|
||||
function updateGame() {
|
||||
addStarField();
|
||||
addShips();
|
||||
|
||||
player1.update();
|
||||
spawnPlanet();
|
||||
if (currentPlanet) currentPlanet.update();
|
||||
@ -161,21 +192,38 @@ function updateGame() {
|
||||
}
|
||||
|
||||
function drawGame() {
|
||||
if (currentPlanet) currentPlanet.draw(); // planet sekarang di background
|
||||
if (currentPlanet) currentPlanet.draw();
|
||||
|
||||
player1.draw();
|
||||
enemy.draw();
|
||||
enemy.update();
|
||||
player1.draw();
|
||||
|
||||
for (var i = 0; i < missilesArray.length; i++) {
|
||||
var m = missilesArray[i];
|
||||
m.draw();
|
||||
m.update();
|
||||
}
|
||||
// Enemy ships
|
||||
for (var i = 0; i < enemyShipArray.length; i++) {
|
||||
var s = enemyShipArray[i];
|
||||
s.draw();
|
||||
s.update();
|
||||
|
||||
if (s.x < -200) {
|
||||
enemyShipArray.splice(i, 1);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
|
||||
// Missiles
|
||||
for (var i = 0; i < missilesArray.length; i++) {
|
||||
var m = missilesArray[i];
|
||||
m.draw();
|
||||
m.update();
|
||||
|
||||
if (m.x > canvasWidth) {
|
||||
missilesArray.splice(i, 1);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
|
||||
drawNewText("Score: " + player1.score, 30, 610, "white");
|
||||
drawNewText("Player Lives: " + player1.lives, 1100, 610, "white");
|
||||
}
|
||||
|
||||
drawNewText("Score: " + player1.score, 30, 610, "white");
|
||||
drawNewText("Player Lives: " + player1.lives, 1100, 610, "white");
|
||||
}
|
||||
|
||||
|
||||
function gameLoop(timestamp) {
|
||||
@ -319,12 +367,13 @@ class LaserBullet {
|
||||
|
||||
|
||||
class EnemyObj {
|
||||
constructor(x, y, speed) {
|
||||
constructor(x, y, speed, img) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.width = 170;
|
||||
this.height = 105;
|
||||
this.image = enemy1;
|
||||
//gambar
|
||||
this.image = img;
|
||||
this.speed = speed;
|
||||
this.health = 100;
|
||||
this.damage = 10;
|
||||
@ -340,7 +389,7 @@ class EnemyObj {
|
||||
}
|
||||
}
|
||||
|
||||
let enemy = new EnemyObj(800, 200, 12);
|
||||
let enemy = new EnemyObj(800, 200, 12, enemyImgArray[0]);
|
||||
|
||||
class Planet {
|
||||
constructor(img) {
|
||||
@ -374,3 +423,16 @@ function spawnPlanet() {
|
||||
currentPlanet = new Planet(randomImg);
|
||||
}
|
||||
}
|
||||
|
||||
function addShips() {
|
||||
if (game.frames > 200) {
|
||||
|
||||
if (game.frames % 150 == 0) {
|
||||
var randomY = Math.floor(Math.random() * 500) + 20;
|
||||
var randomSpeed = Math.floor(Math.random() * 10) + 1;
|
||||
var randomShip = Math.floor(Math.random() * enemyImgArray.length);
|
||||
enemyShipArray.push(new EnemyObj(1300, randomY, randomSpeed, enemyImgArray[randomShip]));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user