Home | History | Annotate | Download | only in noisefield

Lines Matching full:particle

28 typedef struct Particle {
159 Particle_t* particle = dotParticles;
162 particle->position.x = rsRand(-1.0f, 1.0f);
163 particle->position.y = rsRand(-1.0f, 1.0f);
164 particle->speed = rsRand(0.0002f, 0.02f);
165 particle->wander = rsRand(0.50f, 1.5f);
166 particle->death = 0;
167 particle->life = rsRand(300, 800);
168 particle->alphaStart = rsRand(0.01f, 1.0f);
169 particle->alpha = particle->alphaStart;
170 particle++;
205 Particle_t* particle = dotParticles;
211 if(particle->life < 0 || particle->position.x < -1.2 ||
212 particle->position.x >1.2 || particle->position.y < -1.7 ||
213 particle->position.y >1.7) {
214 particle->position.x = rsRand(-1.0f, 1.0f);
215 particle->position.y = rsRand(-1.0f, 1.0f);
216 particle->speed = rsRand(0.0002f, 0.02f);
217 particle->wander = rsRand(0.50f, 1.5f);
218 particle->death = 0;
219 particle->life = rsRand(300, 800);
220 particle->alphaStart = rsRand(0.01f, 1.0f);
221 particle->alpha = particle->alphaStart;
224 float touchDist = sqrt(pow(touchX - particle->position.x, 2) +
225 pow(touchY - particle->position.y, 2));
227 float noiseval = noisef2(particle->position.x, particle->position.y);
232 rads = atan2(touchX - particle->position.x + noiseval,
233 touchY - particle->position.y + noiseval);
235 speed = ( (0.25 + (noiseval * particle->speed + 0.01)) / touchDist * 0.3 );
240 particle->position.x += cos(rads) * speed * 0.2;
241 particle->position.y += sin(rads) * speed * 0.2;
244 float angle = 360 * noiseval * particle->wander;
245 speed = noiseval * particle->speed + 0.01;
248 particle->position.x += cos(rads) * speed * 0.33;
249 particle->position.y += sin(rads) * speed * 0.33;
251 particle->life--;
252 particle->death++;
254 float dist = sqrt(particle->position.x*particle->position.x +
255 particle->position.y*particle->position.y);
258 particle->alphaStart *= (1-dist);
261 if(particle->alphaStart < 1.0f) {
262 particle->alphaStart +=0.01;
263 particle->alphaStart *= (1-dist);
267 if(particle->death < 101) {
268 particle->alpha = (particle->alphaStart)*(particle->death)/100.0;
269 } else if(particle->life < 101) {
270 particle->alpha = particle->alpha*particle->life/100.0;
272 particle->alpha = particle->alphaStart;
275 particle++;