如何使用mouseX和mouseY删除精灵

问题描述 投票:0回答:2

使用 p5.js / p5.play 我尝试单击移动的精灵,但坚持如何获取移动的精灵坐标和位置。当我单击画布上的任意位置时,随机精灵就会消失。我一直在尝试使用 mouseX 和 mouseY。对编码非常陌生,只是想学习基础知识。

let enemy;

let spawnTimer = 0;

function setup() {
  createCanvas(900, 900);
  spritegroup = new Group();
  clickedgroup = new Group();
}

function draw() {
  background(255, 255, 255);

  spritegroup.cull(20);
  clickedgroup.cull(20);
  spawnSprites();
  spriteClicked();
  drawSprites();
}

function spawnSprites() {
  if (spawnTimer === 60) {
    for (var i = 0; i < 2; i++) {
      var angle = random(360);
      var x = random(50, 850);
      var y = -5 * sin(radians(angle));

      createEnemy(3, x, y);
      spawnTimer = 0;
    }
  }

  spawnTimer++;
}

function createEnemy(type, x, y) {
  enemy = createSprite(x, y);
  enemy[floor(random(0, 4))];

  enemy.setSpeed(3.5 - type / 2, 90);
  spritegroup.add(enemy);
  enemy.setCollider("rectangle", 0, 0, 100, 100);
  enemy.debug = true;

  return enemy;
}

function spriteClicked() {
  if (mouseIsPressed == true)
    if (
      (mouseX > enemy.position.x,
      enemy.position.y && mouseY > enemy.position.x,
      enemy.position.y)
    ) {
      enemy.remove();
    }
}

javascript p5.js p5.play
2个回答
1
投票

最简单的方法是使用

sprite.mouse
:)

https://p5play.org/learn/input_devices.html?page=3


0
投票

我会这样做的方式是这样的。

function spriteClicked() {

if (enemy.mouse.pressing())
  enemy.remove()
}
<script src="https://cdn.jsdelivr.net/npm/p5@1/lib/p5.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/p5@1/lib/addons/p5.sound.min.js"></script>
        
<script src="https://p5play.org/v3/planck.min.js"></script>
<script src="https://p5play.org/v3/p5play.js"></script>

让我知道这是否有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.