Ошибка: похоже, вы смешиваете «активный» и «Stati c» режимы в обработке - PullRequest
1 голос
/ 06 февраля 2020

Код - это открытая программа обработки, которую я скачал, но, похоже, она не работает. Я новичок и мне нужна помощь в понимании того, что делать с ошибкой. Заранее спасибо. Пожалуйста, найдите код открытой обработки здесь: https://www.openprocessing.org/sketch/407405

 void setup() {
    size(400,400,0);
    }
    rectMode(CENTER);
    textAlign(CENTER,CENTER);
    var P=200;
    var LOSE=false;
    var score=0;
    var particlestor = [];
    var Timer=millis();
    var fall = function(position) {
      this.velocity = new PVector(0,3);
      this.position = position.get();
    fall.prototype.run = function() {
      this.position.add(this.velocity);
      noStroke();
      fill(0, 0,0);
      rect(this.position.x, this.position.y, 20, 20);
      if(dist(this.position.x, this.position.y,P,390)<=20){LOSE=true;}};
    fall.prototype.isDead = function() {
    if (this.position.y > 400) {return true;} else {return false;}
    };};
    for(var i=0;i<=4;i++){particlestor.push(new fall(new PVector(random(0,400), random(-10,-600))));}
    draw = function() {
    if(LOSE===false){
      background(255, 255, 255);
    if(millis()-Timer>=1000){
    Timer=millis();
    score+=1;
    particlestor.push(new fall(new PVector(random(0,400), random(-10,-400))));
    }    
      P=mouseX;
      for (var i = particlestor.length-1; i >= 0; i--) {
        var p = particlestor[i];
        p.run();
        if (p.isDead()===true) {
          particlestor.splice(i, 1);
          particlestor.push(new fall(new PVector(random(0,400), random(-10,-400))));
        }}
        fill(240,0,0);
        rect(P,390,20,20);
        text(score,10,10);
        if(P>400){LOSE=true;}
        if(P<0){LOSE=true;}
      }
      if(LOSE===true){
      textSize(60);
      text("YOU LOSE\n score :"+score,200,200);
    }};// 50 lines

1 Ответ

2 голосов
/ 06 февраля 2020

Код выше использует Обработка JS. Если вы хотите запустить код локально на вашем компьютере, у вас есть несколько вариантов:

  1. Ознакомьтесь с Обработка JS QuickStart руководств и используйте это
  2. Переносить код на Обработка
  3. Переносить код на p5. js

Например:

var P=200;
var LOSE=false;
var score=0;
var particlestor = [];
var Timer;


function setup() {
  createCanvas(400, 400, 0);

  rectMode(CENTER);
  textAlign(CENTER, CENTER);
  
  Timer=millis();

  for (var i=0; i<=4; i++) {
    particlestor.push(new fall(createVector(random(0, 400), random(-10, -600))));
  }
}

function draw() {
  if (LOSE===false) {
    background(255, 255, 255);
    if (millis()-Timer>=1000) {
      Timer=millis();
      score+=1;
      particlestor.push(new fall(createVector(random(0, 400), random(-10, -400))));
    }    
    P=mouseX;
    for (var i = particlestor.length-1; i >= 0; i--) {
      var p = particlestor[i];
      p.run();
      if (p.isDead()===true) {
        particlestor.splice(i, 1);
        particlestor.push(new fall(createVector(random(0, 400), random(-10, -400))));
      }
    }
    fill(240, 0, 0);
    rect(P, 390, 20, 20);
    text(score, 10, 10);
    if (P>400) {
      LOSE=true;
    }
    if (P<0) {
      LOSE=true;
    }
  }
  if (LOSE===true) {
    textSize(60);
    text("YOU LOSE\n score :"+score, 200, 200);
  }
}
var fall = function(position) {
  this.velocity = createVector(0, 3);
  this.position = position.copy();
  fall.prototype.run = function() {
    this.position.add(this.velocity);
    noStroke();
    fill(0, 0, 0);
    rect(this.position.x, this.position.y, 20, 20);
    if (dist(this.position.x, this.position.y, P, 390)<=20) {
      LOSE=true;
    }
  };
  fall.prototype.isDead = function() {
    if (this.position.y > 400) {
      return true;
    } else {
      return false;
    }
  };
};
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.10.2/p5.min.js"></script>

Рекомендую рефакторинг (очистка кода, более осмысленное именование переменных, комментирование разделов кода и т. Д. c). Это облегчило бы понимание кода и ремиксирование / адаптацию к чему-то лучшему.

...