Computer Science Canada particle thing |
Author: | Homer_simpson [ Thu Sep 25, 2008 12:13 am ] |
Post subject: | particle thing |
Quote: colorback (black)
cls color (white) put "Enter Max Number of Particles [recommended = 1000]:" var mx := 0 get mx cls View.Set ("offscreenonly") %%%%%%%%%%Declaring projectile type as an object%%%%%%%%%%5 type projectile_t : record startx, starty, x, y, angle, weight, life, bounciness, time1 : real end record var projectile_a : array 1 .. mx of projectile_t procedure Reset (var projectile_a : projectile_t, v1, v2, a1, a2, w1, w2, b1, b2 : int) projectile_a.startx := 0 projectile_a.starty := 0 projectile_a.life := Rand.Int (v1, v2) projectile_a.angle := Rand.Int (a1, a2) projectile_a.weight := Rand.Int (w1, w2) projectile_a.time1 := 0 end Reset procedure Projectile (var obj : projectile_t) obj.x := (obj.time1 * cosd (obj.angle)) + obj.startx % obj.y := (obj.time1 * sind (obj.angle)) + obj.starty obj.y := (obj.time1 * sind (obj.angle) - ((obj.weight*obj.time1/10)**2)) + obj.starty obj.time1 += 1 end Projectile for i : 1 .. upper (projectile_a) Reset (projectile_a (i), 2, 200, 0, 180, 1, 1, 10, 30) end for loop for i : 1 .. upper (projectile_a) %Reset (projectile_a (i)) projectile_a (i).time1 += .1 Projectile (projectile_a (i)) drawdot (round (projectile_a (i).x) + 320, round (projectile_a (i).y) + 200, white) if projectile_a (i).life < projectile_a (i).time1 then Reset (projectile_a (i), 2, 200, 0, 180, 1, 1, 10, 30) end if end for %drawline (0, 45, maxx, 45, white) View.Update cls end loop |
Author: | Homer_simpson [ Thu Sep 25, 2008 12:25 am ] |
Post subject: | Re: particle thing |
and this one too Quote: colorback (black)
cls color (white) put "Enter Max Number of Particles [recommended = 1000]:" var mx := 0 get mx cls View.Set ("offscreenonly") %%%%%%%%%%Declaring projectile type as an object%%%%%%%%%%5 type projectile_t : record startx, starty, x, y, angle, weight, life, bounciness, time1 : real end record var projectile_a : array 1 .. mx of projectile_t procedure Reset (var projectile_a : projectile_t, v1, v2, a1, a2, w1, w2, b1, b2 : int) projectile_a.startx := 0 projectile_a.starty := 0 projectile_a.life := Rand.Int (v1, v2) projectile_a.angle := Rand.Int (a1, a2) projectile_a.weight := Rand.Int (w1, w2) projectile_a.time1 := 0 end Reset procedure Projectile (var obj : projectile_t) obj.x := (obj.time1 * cosd (obj.angle)) + obj.startx % obj.y := (obj.time1 * sind (obj.angle)) + obj.starty obj.y := (obj.time1 * sind (obj.angle) - ((obj.weight * obj.time1 / 10) ** 2)) + obj.starty obj.time1 += 1 end Projectile for i : 1 .. upper (projectile_a) Reset (projectile_a (i), 2, 200, 0, 180, 1, 1, 10, 30) end for var d : int := 0 loop d += 1; d := d mod 360 for i : 1 .. upper (projectile_a) %Reset (projectile_a (i)) projectile_a (i).time1 += .1 Projectile (projectile_a (i)) drawdot (round (projectile_a (i).x) + 320, round (projectile_a (i).y) + 200, 15+round(20*(projectile_a (i).time1 / projectile_a (i).life))) if projectile_a (i).life < projectile_a (i).time1 then Reset (projectile_a (i), 2, 200, round ((sind (d) * 40) + 70), round ((sind (d) * 40) + 95), 1, 1, 10, 30) end if end for %drawline (0, 45, maxx, 45, white) View.Update cls end loop |
Author: | Homer_simpson [ Thu Sep 25, 2008 12:37 am ] |
Post subject: | Re: particle thing |
wind effect Quote: colorback (black)
cls color (white) put "Enter Max Number of Particles [recommended = 1000]:" var mx := 0 get mx cls View.Set ("offscreenonly") %%%%%%%%%%Declaring projectile type as an object%%%%%%%%%%5 type projectile_t : record startx, starty, x, y, angle, weight, life, bounciness, time1 : real end record var projectile_a : array 1 .. mx of projectile_t procedure Reset (var projectile_a : projectile_t, v1, v2, a1, a2, w1, w2, b1, b2 : int) projectile_a.startx := 0 projectile_a.starty := 0 projectile_a.life := Rand.Int (v1, v2) projectile_a.angle := Rand.Int (a1, a2) projectile_a.weight := Rand.Int (w1, w2) projectile_a.time1 := 0 projectile_a.bounciness := 1 end Reset procedure Projectile (var obj : projectile_t) obj.x := (obj.time1 * cosd (obj.angle)) + obj.startx + obj.bounciness % obj.y := (obj.time1 * sind (obj.angle)) + obj.starty obj.y := (obj.time1 * sind (obj.angle) - ((obj.weight * obj.time1 / 10) ** 2)) + obj.starty obj.time1 += 1 end Projectile for i : 1 .. upper (projectile_a) Reset (projectile_a (i), 2, 200, 0, 360, 1, 1, 10, 30) end for var d : int := 0 loop d += 1; d := d mod 360 for i : 1 .. upper (projectile_a) %Reset (projectile_a (i)) projectile_a (i).time1 += .1 Projectile (projectile_a (i)) drawdot (round (projectile_a (i).x) + 320, round (projectile_a (i).y) + 200, white) % 15 + round (20 * (projectile_a (i).time1 / projectile_a (i).life))) if projectile_a (i).y + 200 < 180 then projectile_a (i).bounciness := projectile_a (i).bounciness * 1.1 end if if projectile_a (i).life < projectile_a (i).time1 then Reset (projectile_a (i), 2, 200, round ((sind (d) * 20) + 0), round ((sind (d) * 20) + 160), 1, 1, 10, 30) end if end for %drawline (0, 45, maxx, 45, white) View.Update cls end loop |
Author: | StealthArcher [ Thu Sep 25, 2008 3:03 am ] |
Post subject: | RE:particle thing |
O_. HOMER SIMPSUN?? HEre? uhhh... Hi, don't believe we've ever met. |
Author: | Warchamp7 [ Thu Sep 25, 2008 7:42 am ] |
Post subject: | Re: RE:particle thing |
StealthArcher @ Thu Sep 25, 2008 3:03 am wrote: O_.
HOMER SIMPSUN?? HEre? uhhh... Hi, don't believe we've ever met. Also, these little programs of yours are pretty neat Homer |
Author: | petree08 [ Mon Nov 03, 2008 11:25 am ] |
Post subject: | RE:particle thing |
round (projectile_a (i).y) + 200, 15+round(20*(projectile_a (i).time1 / projectile_a (i).life)) i really like that draw dot paramater, nice color effect |
Author: | Danjen [ Mon Nov 03, 2008 6:28 pm ] |
Post subject: | RE:particle thing |
Now, what are the differences between declaring a variable as a class, as opposed to making a variable a pointer to a class? |
Author: | StealthArcher [ Mon Nov 03, 2008 6:36 pm ] |
Post subject: | RE:particle thing |
Same thing, in Turing, all 'class' variables are pointers to an instance. IIRC |