invader

by wesmookewn

2024-11-04 18:33:51

sketch.js

let marus = new Array();
let myX = 0;
let myY = 500;
let myW = 50;
let myH = 10;
let tamas = new Array(0);
let tamaBango = 0;

function setup() {
  createCanvas(600, 600); //ウィンドウサイズの指定
  background(0, 0, 0); //背景色を指定して1回だけ塗る。
  for (let i = 0; i < 10; i = i + 1) {
    for (let j = 0; j < 5; j = j + 1) {
      let maru = new Maru();
      maru.x = i * 50;
      maru.y = j * 50;
      marus.push(maru); //変数の部屋を増やしてmaruを入れる
    }
  }
  for (let i = 0; i < 20; i = i + 1) {
    let tama = new Tama();
    tamas.push(tama);
  }
}

function draw() {
  background(0, 0, 0); //背景色を指定して1回だけ塗る。
  for (let i = 0; i < marus.length; i = i + 1) {
    if (marus[i].ikiteru == true) {
      noStroke();
      fill(150, 0, 255);
      circle(marus[i].x, marus[i].y, 20);
      for (let j = 0; j < tamas.length; j = j + 1) {
        let kyori = dist(marus[i].x, marus[i].y, tamas[j].x, tamas[j].y);
        if (kyori < 10) {
          marus[i].ikiteru = false;
        }
      }
    }
  }
  noStroke();
  fill(255, 255, 0);
  rect(myX - myW / 2, myY, myW, myH);
  myX = mouseX;

  for (let i = 0; i < tamas.length; i = i + 1) {
    noStroke();
    fill(0, 255, 0);
    circle(tamas[i].x, tamas[i].y, 5);

    tamas[i].y = tamas[i].y - 5;
  }
}

function mousePressed() {
  //マウスのボタンが押し下げられた時の処理
  tamas[tamaBango].x = mouseX;
  tamas[tamaBango].y = myY;
  tamaBango += 1;
  if (tamaBango >= tamas.length) {
    tamaBango = 0;
  }
}

function mouseReleased() {
  //マウスのボタンが離された時の処理
}

function keyPressed() {
  if (key == "s") {
    saveCanvas();
  }
}

class Maru {
  constructor() {
    this.x = 0; //クラスに変数を持たせる
    this.y = 0;
    this.ikiteru = true;
  }
}

class Tama {
  constructor() {
    this.x = 0; //クラスに変数を持たせる
    this.y = 0;
  }
}

ファイル一覧

  • index.html
  • p5.min.js
  • p5.sound.min.js
  • sketch.js
  • style.css

ファイルを再アップロード


サムネイル画像を変更