Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Zach Grafton
- // Classic Space Invaders game utilizing p5.js
- // 1. generate new lukes every x seconds/shiftdowns
- // - make five luke arrays, splice them when all lukes are destroyed
- // 2. fix two-key simultaneous push stopping ship's movement
- var ship;
- var lukes;
- var cols = 5;
- var rows = 4;
- var lasers = [];
- function makeLukeArray(cols, rows) {
- var arr = new Array(cols);
- for (var i = 0; i < arr.length; i++) {
- arr[i] = new Array(rows);
- }
- return arr;
- }
- function setup() {
- createCanvas(400, 450);
- ship = new Ship();
- lukes = makeLukeArray(cols, rows);
- for (var i = 0; i < cols; i++) {
- for (var j = 0; j < rows; j++) {
- lukes[i][j] = new Luke(j * 80 + 80, 60); // j should space them out
- }
- }
- }
- function draw() {
- background(31);
- ship.show();
- ship.move();
- var edge = false;
- for (var i = 0; i < rows; i++) {
- (var j = 0; j < cols; j++) {
- lukes[i][0].show();
- lukes[i][0].move();
- }
- }
- }
- /*
- if (lukes[i][j].x > width ||lukes[i][j].x < 0) {
- edge = true;
- }
- if (edge) {
- for (var i = 0; i < lukes.length; i++) {
- lukes[i][j].shiftDown();
- }
- }
- }
- }
- /*
- for (var i = lasers.length-1; i >= 0; i--) {
- if (lasers[i].toDelete) {
- lasers.splice(i, 1);
- }
- }
- for (var i = lukes.length-1; i >= 0; i--) {
- if (lukes[i].shiftTally > 10) {
- setup(); // game over
- }
- }
- }
- for (var i = 0; i< lasers.length; i++) {
- lasers[i].show();
- lasers[i].move();
- for (var j = 0; j < lukes.length; j++) {
- if (lasers[i].hits(lukes[i]) ) {
- lukes[i][j].grow();
- lasers[i].evap();
- if (lukes[i].health < 1) {
- lukes.splice(j, 1);
- }
- }
- }
- }
- */
- function keyReleased() {
- if (key != ' ') {
- ship.setDir(0);
- }
- }
- function keyPressed() {
- if (key === ' ') {
- var laser = new Laser(ship.x, height);
- lasers.push(laser);
- }
- if (keyCode === RIGHT_ARROW) {
- ship.setDir(1);
- } else if (keyCode === LEFT_ARROW) {
- ship.setDir(-1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement