我试图制作一个基本的蛙人游戏。所有我想要做的就是为我的青蛙图像创建一个类,然后我希望它显示在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)
答案 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()
函数中使用宽度。