p5.j​​s - 随机()、高度和宽度未定义?

2023-12-28

我正在尝试使用 p5.js 让球在画布上弹跳,但似乎width, height, and random()没有定义。 这是我的全部代码:

function setup() {
  createCanvas(640,480);
  background(240);
}

var dot = {
  x: random(width), 
  y: random(height), 
  size: 50,
  r: 255,
  g: 0,
  b: 0,
  speedX: 5,
  speedY: 5
};

function draw() {
  background(240);
  fill(dot.r, dot.g, dot.b);
  ellipse(dot.x, dot.y, dot.size, dot.size);
  if (dot.x >= 615 || dot.x <= 25) { //if the ball is out of screen horizontally
    dot.speedX = dot.speedX * -1;
  } 

  if (dot.y >= 465 || dot.y <= 25) { //if the ball is out of screen vertically
    dot.speedY = dot.speedY * -1;
  }

  dot.x = dot.x + dot.speedX;
  dot.y = dot.y + dot.speedY;
}

如果我使用 JavaScriptMath.random,效果很好。此外,如果我手动输入宽度和高度为数字(640 和 480),效果很好。 p5.j​​s 不应该自动分配height, width, random, ETC。? 这是怎么回事?


您不能使用 P5.js 函数或变量(包括width, height, and random()) until after setup()叫做。那是因为 P5.js 尚未加载,因此它们尚未定义。您必须确保对 P5.js 函数或变量的任何调用都在之后setup()叫做。

在你的情况下,你定义dot直接在顶层,这发生在最开始的时候,之前setup()叫做。您可以通过输入来测试这一点console.println()拨打您旁边的电话dot定义,并在里面setup()功能。

要解决此问题,请将初始化移至dot位于setup()功能:

var dot;

function setup() {
  createCanvas(640,480);
  
  dot = {
      x: random(width), 
      y: random(height), 
      size: 50,
      r: 255,
      g: 0,
      b: 0,
      speedX: 5,
      speedY: 5
  }

  background(240);
}

function draw() {
  ...

您可以阅读有关此内容的更多信息P5.js 常见问题解答 https://github.com/processing/p5.js/wiki/Frequently-Asked-Questions#why-cant-i-assign-variables-using-p5-functions-and-variables-before-setup.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

p5.j​​s - 随机()、高度和宽度未定义? 的相关文章

随机推荐

  • Thrift HBase 客户端 - 支持过滤器和协处理器

    遗憾的是 我的 hbase 客户端语言是 Python 我现在使用 happybase 它基于 thrift AFAIK 我知道到目前为止 thrift 仍然不支持过滤器 协处理器 如果我错了 请纠正我 有人可以给我指出任何可以跟踪计划 进
  • 算法选择建议

    我必须做一个项目 尝试扫描车辆的形状并检测它是什么类型的车辆 扫描将使用称为 车辆扫描仪 的传感器进行 它们只有 50 束光 每束都有接收器和发射器如图所示 我从传感器获得每个光束的原始状态 阻挡或解锁 通过连续扫描 我们可以创建可能非常低
  • VIM textwidth 没有效果

    这感觉像是一个愚蠢的问题 但我在互联网上 或在 VIM 帮助中 找不到答案 我在 Mac OS X 上使用 VIM 7 2 我想做的就是将行换行为 72 个字符 但是这样做 set textwidth 72 没有影响 文本宽度设置正确 我可
  • 使用 MySQL Fulltext(或 sphinx?)进行模糊街道地址搜索[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个数据库表 其中包含来自 Google 地图地理编码响应的地址 Google 缩写了所有方向 西 gt W 东 gt E 等 因
  • AngularJS - 有条件地应用属性?

    有条件地应用一个元素很容易 只需使用 ng show 即可 但是属性呢 IE div div 需要仅对管理员进行排序 因此请执行以下操作 div div 创建自定义指令或模板 并在附加可排序的版本和不附加可排序的版本之间切换
  • IIS 7.5 / WCF - net.tcp 状态未知

    我正在尝试让我的 WCF 服务与netTcpBinding代替wsHttpBinding 但我似乎无法让它工作 我添加了net tcp绑定到 IIS7 5 但状态为未知 当我还删除 http 绑定时 它会在网站上放置一个大红色 X 我必须添
  • Jetpack Compose:对角分割卡片并将内容放入其中

    我试图实现这样的目标 其中 A 是图像 B 也是图像 目前 这是我能做的最好的事情 Card modifier Modifier fillMaxWidth constrainAs image top linkTo parent top st
  • 如何写入管道叉?

    我有以下通过 fork 和 execvp 执行命令的函数 我在 fork 中启动的脚本正在监听输入数据 我如何将数据发送到 myscript int external command int pfds 2 if pipe pfds lt 0
  • 向客户端广播数据包在java中不起作用

    我有多个发射器 配置为当它们收到从服务器通过本地端口 5255 远程端口 5252 发送的广播数据包时发回响应 其中包含字符串 AST show me 0 如发射器手册中所述 这应该可以帮助我扫描本地网络内的所有发射器 我已经实现了一个服务
  • 使用 LINQ to XML 生成动态 sitemap.xml 时如何正确生成 xsi:schemalocation 属性?

    我正在生成动态 sitemap xml 根据站点地图 org http www sitemaps org protocol php这是 sitemap xml 的标头
  • Excel VBA 中的公共与私有/暗淡

    我可以使用一些帮助来理解在 Excel 2013 VBA 的模块中使用 Public 与 Dim 首先 我想说我确实找到了这篇很棒的文章 它具有出色的定义 请参阅下面的链接 但没有示例 我可以使用一些示例来说明如何将公共变量应用到我的项目中
  • 矢量分段故障的矢量

    当我尝试为这个向量向量赋值时 我不断遇到分段错误 我基本上是从图像中读取像素 然后尝试创建一个向量向量 您可以访问该行 然后访问该行上的像素以获取该点的像素 但是当我尝试将特定像素分配给像素值时 它会给我一个分割错误 我使用占位符 255
  • 如何将一个Makefile中的两个不同的源目录输出到一个bin目录?

    我有以下 Makefile 来构建我的 erlang 项目 SUFFIXES erl beam yrl ERL SRC wildcard src erl ERL OBJ patsubst src erl ebin beam ERL SRC
  • Apache Spark:处理 RDD 中的 Option/Some/None

    我正在映射一张 HBase 表 为每个 HBase 行生成一个 RDD 元素 然而 有时该行有坏数据 在解析代码中抛出 NullPointerException 在这种情况下我只想跳过它 我的初始映射器返回一个Option指示它返回 0 或
  • 在android.java中读取Excel文件

    我编写此代码来读取 Excel 文件 并将其粘贴到资产文件夹 我的文件名 book xls 中以读取它 但是当我按下按钮显示文件时它不起作用并且不显示任何内容 请帮助我解决我的问题 多谢 这是我的代码 package com example
  • 关于ImageIcons的方法不起作用

    import java awt import java awt event import javax swing public class Cards extends JFrame private GridLayout grid1 JBut
  • Python:获取默认网关的MAC地址

    Python 有没有什么快速的方法来获取MAC地址 of the 默认网关 我什么也做不了ARP 请求来自Linux我正在运行代码的机器 所以它必须直接来自ARP表 以下 DevFS 文件将提供此信息 proc net arp proc n
  • 与黎曼求和 Python 集成

    我一直在尝试用黎曼和求解积分 我的函数有 3 个参数 a b d 因此 a 是下限 b 是上限 d 是其中的部分a n 1 d lt b 到目前为止 这是我的代码 我的输出是28 652667999999572我应该得到的是28 66665
  • 如何使用 TypInfo 单元中的 GetSetProp 和 SetSetProp

    我有一组枚举值 需要将其转换为文本 然后再转换回集合 我相信 TypInfo 单元的 GetSetProp 和 SetSetProp 允许执行此操作 但我不知道如何让它工作 关于如何使用 GetSetProp 和 SetSetProp 来完
  • p5.j​​s - 随机()、高度和宽度未定义?

    我正在尝试使用 p5 js 让球在画布上弹跳 但似乎width height and random 没有定义 这是我的全部代码 function setup createCanvas 640 480 background 240 var d