处理类给出空指针异常(初学者)

时间:2012-10-29 23:53:02

标签: java

我试图制作一个基本的蛙人游戏。所有我想要做的就是为我的青蛙图像创建一个类,然后我希望它显示在void draw();下面除了我不断得到NullPointException,任何人都可以帮我找出原因吗?

这是我一直在玩的代码,试图找出问题所在。

PImage img; // frog image

Frog froggy;
Car[] c1;

class Car {
  float xpos;
  int ypos;
  int sizel;
  int sizew;
  float yspeed;
  color c;

   Car(){
    xpos = 0;
    ypos = (int)random(120,480);
    sizel = (int)random(20,30);
    sizew = 15;
    yspeed = (float)random(1,3);
    c= color(random(255), random(255), random(255));

  }

  void carShape() {
    rectMode(CENTER);
    fill(c);
   rect(xpos,ypos,sizel,sizew);
   fill(0);
   rect(xpos-5, ypos-8, 8,5);
   rect(xpos+5, ypos-8, 8,5);
   rect(xpos-5, ypos+8, 8,5);
   rect(xpos+5, ypos+8, 8,5);

  }

 void moveCar () {
   xpos = xpos + yspeed;
    if (xpos > width) {
      xpos = 0;
      ypos = (int)random(120,480);

    } 

 } 
}

class Frog {
  int frogx;
  int frogy;

 Frog(){
    frogx = width/2-20;
    frogy = 527;
 }

  void drawFrog() {
    image(img,frogx,frogy);

 }
}

void setup() {
  size(800,600);
   img = loadImage("frog.png");


c1 = new Car[20];

  for(int i=0; i<20; i++) {
    c1[i] = new Car();
  }
}

  void draw() {
    background(100);

     froggy.drawFrog();


    for(int i=0; i<20; i++) {
    c1[i].carShape();
    c1[i].moveCar();
    }


  }

继承错误

Exception in thread "Animation Thread" java.lang.NullPointerException
    at snowflakecarexample.draw(snowflakecarexample.java:97)
    at processing.core.PApplet.handleDraw(PApplet.java:2120)
    at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:197)
    at processing.core.PApplet.run(PApplet.java:1998)
    at java.lang.Thread.run(Thread.java:680)

3 个答案:

答案 0 :(得分:3)

你不是initialize Frog对象。 试试

   Frog froggy = new Frog();
   froggy.drawfrog();

答案 1 :(得分:2)

无论青蛙应该是什么,都必须初始化:

Frog froggy;
... (Froggy is null)
froggy.drawFrog();

也许你想在某个地方调用构造函数?像:

Frog froggy = new Frog();

答案 2 :(得分:0)

moveCar()函数中,您正在检查if (xpos > width),但我看不到任何地方声明的宽度。除非声明它而不是在你发布的片段中,否则这可能就是问题所在。

您还可以在Frog()函数中使用宽度。