We are about to switch to a new forum software. Until then we have removed the registration on this forum.
i whant to put an image in to the shape but its coming out white can anyone help
`class astroid {`
// An astroid angle, speed, size, rotation
float angle, speed, size, rotSpeed;
float position;
float rotation;
float xoff, yoff;
float x, y;
PShape s; // The PShape object - Keeps the astroid shape
float i;
int id;
// Constructor
astroid(float _angle, float _speed, float _size, float _rotSpeed, float _xoff, float _yoff, int _id) {
angle = _angle;
speed = _speed;
size = _size;
rotSpeed = _rotSpeed;
xoff = _xoff;
yoff = _yoff;
id = _id;
if (xoff<1000) {
x = 250+500*cos(angle)+xoff;
y = 250+500*sin(angle)+yoff;
} else {
x = _xoff-2000;
y = _yoff-2000;
}
rotation = 0;
// Generate the shape of the astroid - Some variations for all
s = createShape();
s.beginShape();
//s.fill(2 55, 255, 170);
//s.setTexture(
s.setTexture(ast);
s.noStroke();
for (i=0; i<TWO_PI; i=i+PI/(random(4, 11))) {
s.vertex(random(ast_size*0.8, ast_size*1.2)*cos(i), random(ast_size*0.8, ast_size*1.2)*sin(i));
}
s.endShape(CLOSE);
}
// Increases the speed. Used in the end of the game to clear screen of astroids
void incSpeed() {
speed = speed * 1.02;
}
// Update position, return true when out of screen
boolean update() {
int i;
x = x - cos(angle)*speed;
y = y - sin(angle)*speed;
rotation = rotation + rotSpeed;
// Check for astroid vs astroid collision
for (i = 0; i<astroids.size(); i++) {
astroid a = astroids.get(i);
if ((a != this) && (a.coll(x, y, ast_size*size, id))) {
if (size > 1) {
astroids.add(new astroid(angle-random(PI/5, PI/7), speed+random(0, speed/2), size/2, rotSpeed, 2000+x, 2000+y, id));
astroids.add(new astroid(angle+random(PI/5, PI/7), speed+random(0, speed/2), size/2, rotSpeed, 2000+x, 2000+y, id));
ast_id++;
}
astroids.remove(i);
}
}
pushMatrix();
// Set position as the new 0,0
translate(x, y);
// Rotate screen "angle"
rotate(rotation);
// Draw astroid
scale(size);
shape(s);
texture(ast);
// Bring back normal perspektive
popMatrix();
if (x<-300 || x>800 || y<-300 || y>800) {
return true;
} else {
return false;
}
}
//
boolean coll(float _x, float _y, float _size, int _id) {
float dist;
dist = sqrt ((x-_x)*(x-_x) + (y-_y)*(y-_y));
// Check if distance is shorter than astroid size and other objects size
if ((dist<(_size+ast_size*size)) && (id!=_id)) {
// Collision,
if (_id>0) id = _id;
if (size > 1) {
// If the astroid was "large" generate two new fragments
astroids.add(new astroid(angle-random(PI/5, PI/7), speed+random(0, speed/2), size/2, rotSpeed, 2000+x, 2000+y, id));
astroids.add(new astroid(angle+random(PI/5, PI/7), speed+random(0, speed/2), size/2, rotSpeed, 2000+x, 2000+y, id));
}
return true;
} else {
return false;
}
}
}
Answers
the image is loaded in the main and it is declared