aspose file tools*
The moose likes Beginning Java and the fly likes I'm fazed by a nullpointererror I can't get rid of Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "I Watch "I New topic
Author

I'm fazed by a nullpointererror I can't get rid of

Martin Platt
Greenhorn

Joined: Aug 23, 2004
Posts: 9
It's really annoying because it seems logical enough to me and I'm sure it's something really simple. I hope someone can help me. It's a bat and ball game to which I'm adding a computer opponent. The problem occurs in the Ball code:



and throws the exception because it doesn't like aii.b. But it has no problem in the next if statement:
if ((int)(x)>=490 && y>james.z-6 && y<james.z+35+6)

which is exactly the same logic.


Here's the main programme


And here's the Ball code...



Here's the Player code...



And finally here's the AI code...

Michael Dunn
Ranch Hand

Joined: Jun 09, 2003
Posts: 4632
in batball3's init()

ball=new Ball(200,250,-5,-5,bat,hitwall,score,missit,ai)
ai=new Ai(ball);

ai is null - used prior to it's creation

if you change the lines around, ball will be null - same reason
Martin Platt
Greenhorn

Joined: Aug 23, 2004
Posts: 9
Thanks Michael, this makes sense. I see what you mean that, either way, you get the error. But I need ai to know about ball, and ball to know about ai. Is there an easy way to send this information after the object is created?
[ December 28, 2005: Message edited by: Martin Platt ]
Michael Dunn
Ranch Hand

Joined: Jun 09, 2003
Posts: 4632
you could try this (need to modify ball's constructor)

//ball=new Ball(200,250,-5,-5,bat,hitwall,score,missit,ai);//remove ai
ball=new Ball(200,250,-5,-5,bat,hitwall,score,missit);
ai=new Ai(ball);
ball.aii = ai;
Martin Platt
Greenhorn

Joined: Aug 23, 2004
Posts: 9
Thanks so much! It works.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: I'm fazed by a nullpointererror I can't get rid of