首页 > 解决方案 > 如何使用对象并创建不同颜色的正方形

问题描述

我想在可汗学院做一些简单的编码。该程序仅创建 4 本书、书架、作者、书名和评级。我遇到了一个问题,当我尝试将颜色插入填充命令时,我有对象存储颜色,但它从未起作用。如果您愿意,星星(评级系统)也很混乱,请帮助我。

book[{
  bookColor: [255, 0, 0];
} {
  bookColor: [0, 0, 255]
}]
for (var j = 0; j < 4; j++) {
  fill(book[j].colorBook, book[j].colorBook, book[j].bookColor);

  //this did not work ;( ;( ended up with the books being white.

  var book = [{ /*first book*/
      title: "Vampirates",
      stars: 4,
      bookColor: [93, 240, 98],

      author: "Justin Somper"

    },
    { /*Second book*/
      title: "Harry Potter",
      stars: 5,
      bookColor: [235, 240, 93],
      author: "J.K Rowling"

    }, /*thrid book*/
    {
      title: "Junie B Jones",
      stars: 2,
      bookColor: [255, 0, 0],
      author: "Barbra Park"

    },
    { /*fourth book*/
      title: "Cat in the hat",
      stars: 5,
      bookColor: [0, 0, 255],
      author: "Dr. Seus",


    }
  ];
  // draw shelf
  fill(173, 117, 33);
  rect(0, 120, width, 10);
  // draw lots of books
  for (var j = 0; j < 4; j++) {
    fill(book[j].colorBook, book[j].colorBook, book[j].bookColor);
    rect(j * 102, 19, 90, 100);

    //title
    textSize(12);
    fill(0, 0, 0);
    text(book[j].title, j * 104 + 7, 27, 76, 100);
    //author
    textSize(10);
    text(book[j].author, j * 104 + 10, 43, 70, 98);
  }

  for (var i = 0; i < book[i].stars; i++) {
    image(getImage("cute/Star"), 4 + i * 16, 87, 20, 35);
  }

我希望一行(书架)上有 4 个正方形(书),书的底部有作者、标题、正确数量的星星,并且它们位于颜色的右侧,即绿色、黄色, 红蓝。非常感谢你,如果你能帮助我,这将极大地影响我对 Java Script 的学习。

标签: javascriptarraysobjectcolors

解决方案


您正在尝试访问colorBook而不是bookColor

fill(book[j].colorBook, book[j].colorBook, book[j].bookColor);

推荐阅读