Я создал довольно большую игру (10 000 строк кода) в Processing.js и смог запустить ее внутри веб-страницы, загрузив библиотеку. Вот пример:

<!DOCTYPE html>
<html> 
  <head>
    <title>Processing.JS in Webpage</title> 
  </head>
  <body>
    <canvas id="mycanvas"></canvas> 
  </body>
  <script src="https://cdn.jsdelivr.net/processing.js/1.4.8/processing.min.js"></script> 
  <script>
  var programCode = function(processingInstance) {
    with (processingInstance) {
      size(400, 400);
      background(100,200,0)
      frameRate(60);
      noStroke()
      fill(255, 255, 0);
      ellipse(200, 200, 200, 200);
      noFill();
      stroke(0, 0, 0);
      strokeWeight(5);
      arc(200, 205, 150, 132, 0, PI);
      fill(0, 0, 0);
      ellipse(250, 180, 10, 10);
      ellipse(153, 180, 10, 10);
      mousePressed = function(){
        background(255,0,0);
        
        //how to play a sound file here?
        
      };
    }};

  // Get the canvas that ProcessingJS will use
  var canvas = document.getElementById("mycanvas"); 
  // Pass the function to ProcessingJS constructor
  var processingInstance = new Processing(canvas, programCode); 
  </script>
</html>

Почти все работает с моей игрой, запущенной на холсте, но я хотел бы воспроизводить звуки, когда игрок стреляет. Есть ли способ воспроизвести звук на основе того, что происходит внутри кода Processing.js? Например, допустим, у меня есть переменная внутри моего кода processing.js, которая изменяется в зависимости от того, стреляет игрок или нет:

//inside processing.js game code
if(playerIsShooting){
   //play sound here with processing.js or tell something else to play sound outside of my script?
}

Благодарность!

1
Oyster_Bucket 10 Фев 2021 в 22:26

1 ответ

Лучший ответ
Sound = new Audio('https://upload.wikimedia.org/wikipedia/commons/6/6e/%28Audio_Bahasa_Melayu%29_ibu.ogg');
     Sound.play();

В Processing есть библиотека звуков. Вы можете использовать этот код для воспроизведения любого звука, для которого у вас есть URL-адрес.

https://jsfiddle.net/sueyhazq/7/

1
Sam Spade 10 Фев 2021 в 19:54