【问题标题】:P5 play and how to create a game over screen after more than three enemy sprites have gone past the player and reached the bottom of the screenP5 游戏以及如何在超过三个敌方精灵经过玩家并到达屏幕底部后创建游戏结束屏幕
【发布时间】:2022-11-06 15:46:25
【问题描述】:

我有一个使用 p5.js 播放库制作的游戏,其中玩家精灵射出子弹并用这些子弹取出迎面而来的敌人精灵流。我想在 3 个敌方精灵经过玩家到达屏幕底部并且不知道如何处理之后让游戏结束。

let y = 0;

let spr;
let enemies;
let player;
let bullets = [];
let bullet;
let bulletsprite;

let score = 0;

function setup() {
  createCanvas(600, 600);
  
  bulletsprites = new Group()
  enemies = new Group()
  for(i = 0; i < 60; i++){  
  
  spr = createSprite(
  random(width), y, random(10, 40), random(10, 40));
  spr.shapeColor = color(random(255), random(255), random(255), random(255));
  spr.velocity.y = random(0.7, 2);
  enemies.add(spr); 
    
  }
  
  player = createSprite(50, 50, 40, 40);
  player.shapeColor = color(255);
 
}


function draw() {
  background(30);
  
  player.velocity.x = 
    (mouseX-player.position.x)*0.1;
  player.velocity.y = 
    (mouseY-player.position.y)*0.1;
  
  textSize(72);
  textAlign(CENTER, CENTER);
  
  drawSprites();
  if (enemies.length > 0) {
    text(score, width/2, height/2);
  }
  else {
    text("you win!", width/2, height/2);
  }
  bulletsprites.overlap(enemies, getScore)
}



function mousePressed() {
  //bullets positions setting
  let bullet = {
    x: mouseX,
    y: mouseY,
  };
    
    bullets.push(bullet);
    bulletsprite = createSprite(bullet.x, bullet.y, 10);
    bulletsprite.velocity.y = -4;
    bulletsprites.add(bulletsprite)
}

function getScore(bullets, enemies) {
  enemies.remove();
  score += 1;
}

【问题讨论】:

    标签: javascript sprite p5.js game-development


    【解决方案1】:

    做一个计数器,每次敌人到达底部时加起来。

    做一个暂停变量

    制作一个 gameOver 函数,如果计数器达到 3,它将暂停你的游戏。

    将敌人移动和游戏动作等所有功能放在主循环的 if(pause==false){} 语句中。

    在 gameOver 功能中,您可以随意结束游戏,它可以是动画、菜单、带有文本的黑屏、按钮等...

    在你的“主循环”中调用这个函数

    很抱歉没有使用代码,我不使用 p5 但逻辑部分是重要的部分:) 祝你好运。

    【讨论】:

      猜你喜欢
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      相关资源
      最近更新 更多