سؤال

لذلك قمت بعمل هذا في أكاديمية خان وأريد أن أضعه على موقع الويب الخاص بي.

https://www.khanacademy.org/cs/fade-away/4830224329998336

لتحويل هذا إلى JavaScript، قمت بوضع الكود أدناه.لسوء الحظ أحصل على الخطأ:أنت تقوم بخلط الأوضاع النشطة والثابتة.لماذا يعمل هذا في معالجة أكاديمية خان وليس في المعالجة العادية؟وأيضًا ما هي الطرق الأخرى التي يمكنني من خلالها كتابة هذا لإنجاحه؟

//don't forget to click!!!
background(2, 3, 3);

strokeWeight(2);
var x = random;

void setup(){
  size(500,500);
}




void draw(){
   fill(0, 0, 0, 20);
   rect(0,0, 400,400);
    var randomSize = random(20, 60);

     if (mouseIsPressed) { 

        noStroke();
        fill(random(0, 255), random(0, 255), random(0, 255), 373);

        } 

    else {
        noStroke();
        fill(255, 0, 0, 15);
        randomSize=50;
    }
    ellipse(mouseX, mouseY, randomSize, randomSize);
};
هل كانت مفيدة؟

المحلول

هناك العديد من المشاكل مع التعليمات البرمجية الخاصة بك.أولاً، لا يمكنك إجراء مكالمات وظيفية خارج draw() و setup()- هذا هو ما يسبب الخطأ "نشط مقابل ثابت".حركهم داخل setup().ثانيا لا يوجد شيء اسمه mouseIsPressed في المعالجة، ولكن هناك mousePressed.أنت أيضًا لا تحتاج إلى فاصلة منقوطة بعد قوس الإغلاق draw().يمكنك أيضًا استخدام القيم المشفرة لـ 400 لرسم المستطيل، بينما النافذة نفسها 500س500.لا يجب عليك استخدام أرقام مرمزة مثل هذه على أي حال، استخدم المدمج في width و height الثوابت.وأخيرًا، لا تستخدم المتغير مطلقًا x, ، لذلك قمت بالتعليق عليه.إليك الكود الذي يعمل (ويتم تنظيفه من حيث التنسيق).

//don't forget to click!!!

void setup() {
  size(500, 500);
  background(2, 3, 3);
  strokeWeight(2);
  //var x = random;
}

void draw() {
  fill(0, 0, 0, 20);
  rect(0, 0, width, height);
  var randomSize = random(20, 60);
  noStroke();

  if (mousePressed) { 
    fill(random(0, 255), random(0, 255), random(0, 255), 373);
  }  else {
    fill(255, 0, 0, 15);
    randomSize=50;
  }
  ellipse(mouseX, mouseY, randomSize, randomSize);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top