import ddf.minim.*;
AudioPlayer player;
Minim minim;
Table t1= new Table(300, 300);
float power=0;
float dx=0;
float dy=0;
void setup()
{
size(1000, 600);
frameRate(20);
minim= new Minim(this);
player=minim.loadFile("ballsound.mp3");
}
void draw()
{
strokeWeight(1);
stroke(0, 0, 0);
strokeWeight(10);
stroke(255, 0, 0);
fill(26, 218, 35);
rect(0, 0, 1000, 600);
noStroke();
fill(0);
ellipse(0, 0, 80, 80);
ellipse(1000, 0, 80, 80);
ellipse(0, 600, 80, 80);
ellipse(1000, 600, 80, 80);
strokeWeight(1);
stroke(0, 0, 0);
fill(255);
ellipse(t1.cue_ball.center.x, t1.cue_ball.center.y, 20, 20);
t1.cue_ball.center.x+=dx;
t1.cue_ball.center.y+=dy;
dx=friction(dx);
dy=friction(dy);
stroke(40);
strokeWeight(4);
line (mouseX , mouseY , mouseX + cos (atan2 (mouseY -t1.cue_ball.center.y , mouseX - t1.cue_ball.center.x))*300 , mouseY + sin(atan2 (mouseY - t1.cue_ball.center.y , mouseX -t1.cue_ball.center.x))*300);
if (mousePressed)
{
power+=4;
}
if (t1.cue_ball.center.x+20 > 1000 || t1.cue_ball.center.x-20 < 0)
{
dx*=-1;
player.rewind();
player.play();
}
if (t1.cue_ball.center.y+20 > 600 || t1.cue_ball.center.y-20 < 0)
{
dy*=-1;
player.rewind();
player.play();
}
if((t1.cue_ball.center.x < 40 && (t1.cue_ball.center.y < 40 ||t1.cue_ball.center.y > 560)) || (t1.cue_ball.center.x > 980 && (t1.cue_ball.center.y > 580 || t1.cue_ball.center.y < 40)))
{
dx=0;
dy=0;
fill(255);
textSize(25);
text("GAME OVER" ,500,300);
player.pause();
}
if (t1.cue_ball.center.x +20 == 1000)
{
t1.cue_ball.center.x=979;
}
if (t1.cue_ball.center.x -20 == 0)
{
t1.cue_ball.center.x =21;
}
if(t1.cue_ball.center.y -20 == 0)
{
t1.cue_ball.center.y =21;
}
}
void mouseReleased()
{
dx=t1.cue_ball.center.x-mouseX;
dy=t1.cue_ball.center.y-mouseY;
float n= sqrt(pow(dx,2)+pow(dy,2));
dx*=power/n;
dy*=power/n;
}
float friction (float c)
{
c*=0.9;
return c;
}
class Ball
{
float rad;
Point center;
Point contact_point;
color col;
Ball (float a, float b)
{
center = new Point (a+=dx, b+=dy);
}
}
class Table
{
Ball [] b_arr;
Stick st;
Ball cue_ball;
Table (float a, float b)
{
cue_ball= new Ball(a, b);
}
}
class Point
{
float x;
float y;
Point(float a, float b)
{
x=a;
y=b;
}
}
class Stick
{
Point start_p;
Point end_p;
color col;
int length;
}
Da der Stick hinzugefügt wurde, hat es aufgehört, von den Wänden abprallen zu können und ich kann nicht verstehen, warum. Es funktionierte, bevor es hinzugefügt wurde, und dann hörte es einfach auf und wenn es nah ist, gibt es NullPointerException. Ich sehe nicht, wie man klebt, würde aber etwas verändern.Warum erhalte ich NullPointerException für diesen Code?
wo haben Sie 'Ball [] b_arr initialisiert? Stock st; '? – SMA
Haben Sie sich den StackTrace angesehen? Es würde Ihnen einen Indikator geben, wo Sie im Code die nullpointerException erhalten. – Einar
bieten Stacktrace. – HaroldSer