Processing 处理中的矩阵文本雨效应3.3

Processing 处理中的矩阵文本雨效应3.3,processing,Processing,我正在制作Processing 3.3中的矩阵文本雨效果,作为学习Processing库和Java的简单入门项目。到目前为止,我的代码是: 类符号{ int x,y; int switchInterval=round(随机(2,50)); 浮动速度; 字符值; 符号(整数x,整数y,浮点速度){ 这个.x=x; 这个。y=y; 速度=速度; } //基于片假名Unicode块设置为随机符号 void setToRandomSymbol(){ 如果(帧数%switchInterval==0){ v

我正在制作Processing 3.3中的矩阵文本雨效果,作为学习Processing库和Java的简单入门项目。到目前为止,我的代码是:

类符号{
int x,y;
int switchInterval=round(随机(2,50));
浮动速度;
字符值;
符号(整数x,整数y,浮点速度){
这个.x=x;
这个。y=y;
速度=速度;
}
//基于片假名Unicode块设置为随机符号
void setToRandomSymbol(){
如果(帧数%switchInterval==0){
value=char((int)random(0x30A0,0x3100));
}
}
//将角色从屏幕上投射下来,并在它们移动时循环到顶部
//到达屏幕底部
空雨(){

如果(y首先得到一个介于5和30之间的随机数:

整数totalSymbols=圆形(随机(5,30))

然后创建一个数组,其中包含
Symbol
类的
500
实例:

Symbol[] symbols = new Symbol[500];
请注意,此数组此时保存500个
null

然后将最多30个
Symbol
实例添加到数组中:

for (int i = 0; i <= totalSymbols; i++) {
  symbols[i] = new Symbol(x, y, speed);
但请记住,这些索引中至少有470个是
null
,这就是为什么会出现
NullPointerException

一些基本调试会告诉您所有这些。我会在您出现错误之前添加一个基本的
println()
语句:

for(Symbol s : symbols) {
  println("s: " + s);
  s.setToRandomSymbol();
这将显示您正在迭代
null

无论如何,要解决您的问题,您需要停止对整个数组进行迭代,或者停止为从不使用的索引腾出空间

今后,请在发帖前尝试将问题缩小为一个小问题。请注意,这个小得多的示例程序显示了您的错误:

String[] array = new String[10];
array[0] = "test";
for(String s : array){
  println(s.length());
}

首先,你会得到一个介于5和30之间的随机数:

整数totalSymbols=圆形(随机(5,30))

然后创建一个数组,其中包含
Symbol
类的
500
实例:

Symbol[] symbols = new Symbol[500];
请注意,此数组此时保存500个
null

然后将最多30个
Symbol
实例添加到数组中:

for (int i = 0; i <= totalSymbols; i++) {
  symbols[i] = new Symbol(x, y, speed);
但请记住,这些索引中至少有470个是
null
,这就是为什么会出现
NullPointerException

一些基本调试会告诉您所有这些。我会在您出现错误之前添加一个基本的
println()
语句:

for(Symbol s : symbols) {
  println("s: " + s);
  s.setToRandomSymbol();
这将显示您正在迭代
null

无论如何,要解决您的问题,您需要停止对整个数组进行迭代,或者停止为从不使用的索引腾出空间

今后,请在发帖前尝试将问题缩小为一个小问题。请注意,这个小得多的示例程序显示了您的错误:

String[] array = new String[10];
array[0] = "test";
for(String s : array){
  println(s.length());
}

什么是
width
以及在哪里设置它?
width
是处理库中的一个内置变量,等于窗口的宽度。请发布一个。当我尝试运行代码时,我会收到一个错误,因为从未定义
symbolSize
。即使我修复了该错误,我也只会得到一个空白的草图,因为您没有包括在内您的
setup()
draw()
函数。与其发布所有代码,不如尝试创建一个我们可以运行的小示例,我们将从那里开始。谢谢,我一定会在以后的帖子中这样做。什么是
宽度
,您在哪里设置它?
宽度
是处理库中的一个内置变量,等于窗口的宽度。请发布答:当我试图运行你的代码时,我会得到一个错误,因为从来没有定义过
symbolSize
。即使我修复了这个错误,我也只会得到一个空白的草图,因为你没有包括你的
setup()
draw()
函数。与其发布所有代码,不如尝试创建一个我们可以运行的小示例,我们将从那里开始。谢谢,我一定会在以后的帖子中这样做。