Delete Using Density Script Not Working

About advanced scenes, and the Thyme scripting language used in Algodoo.

Delete Using Density Script Not Working

Postby Mag8328 » Wed Jun 22, 2011 1:49 pm

When I spawn a ball using onCollide which will then spawn lots of other balls using onHitByLaser, the script for density does not go all the way through. This would be much easier to understand if you look at the code.
Code: Select all
(e)=>{
    scene.addCircle({
        vel := [0, 40];
        pos := e.pos;
        radius := 0.1;
        color := scene.my.ballcolor;
        onhitbylaser := (e)=>{
            scene.addcircle({
                radius := 0.1;
                pos := e.pos;
                vel := [10, 0];
                color := scene.my.neongreen;
                density := {Scene.my.deleteDensity1}
            });
            scene.addpen({
                pos := e.pos;
                color := scene.my.neongreen;
                size := 0.09;
                fadetime := 1
            });
            scene.addcircle({
                radius := 0.1;
                pos := e.pos;
                vel := [-10, 0];
                color := scene.my.neongreen;
                density := {Scene.my.deleteDensity1}
            });
            scene.addpen({
                pos := e.pos;
                color := scene.my.neongreen;
                size := 0.09;
                fadetime := 1
            });
            scene.addcircle({
                radius := 0.1;
                pos := e.pos;
                vel := [7.1, 7.1];
                color := scene.my.neongreen;
                density := {Scene.my.deleteDensity1}
            });
            scene.addpen({
                pos := e.pos;
                color := scene.my.neongreen;
                size := 0.09;
                fadetime := 1
            });
            scene.addcircle({
                radius := 0.1;
                pos := e.pos;
                vel := [-7.1, 7.1];
                color := scene.my.neongreen;
                density := {Scene.my.deleteDensity1}
            });
            scene.addpen({
                pos := e.pos;
                color := scene.my.neongreen;
                size := 0.09;
                fadetime := 1
            });
            scene.addcircle({
                radius := 0.1;
                pos := e.pos;
                vel := [7.1, -7.1];
                color := scene.my.neongreen;
                density := {Scene.my.deleteDensity1}
            });
            scene.addpen({
                pos := e.pos;
                color := scene.my.neongreen;
                size := 0.09;
                fadetime := 1
            });
            scene.addcircle({
                radius := 0.1;
                pos := e.pos;
                vel := [-7.1, -7.1];
                color := scene.my.neongreen;
                density := {Scene.my.deleteDensity1}
            });
            scene.addpen({
                pos := e.pos;
                color := scene.my.neongreen;
                size := 0.09;
                fadetime := 1
            });
            scene.addcircle({
                radius := 0.1;
                pos := e.pos;
                vel := [3.4, 9.4];
                color := scene.my.neongreen;
                density := {Scene.my.deleteDensity1}
            });
            scene.addpen({
                pos := e.pos;
                color := scene.my.neongreen;
                size := 0.09;
                fadetime := 1
            });
            scene.addcircle({
                radius := 0.1;
                pos := e.pos;
                vel := [-3.4, 9.4];
                color := scene.my.neongreen;
                density := {Scene.my.deleteDensity1}
            });
            scene.addpen({
                pos := e.pos;
                color := scene.my.neongreen;
                size := 0.09;
                fadetime := 1
            });
            density = 0
        }
    })
}
I want the 2nd set of balls to delete after about 3.8 seconds, so I have a forever bouncing circle (total restitution of 1) with the (working) script of
Code: Select all
(e)=>{sim.time > 3.8 ? {scene.my.deletedensity1 = 0} : {scene.my.deletedensity1 = 2}}
When I check the first ball all of the script looks fine. But when I check the second set of balls in the script menu, density = 2 instead of density = {scene.my.deletedensity1}. What am I doing wrong!?

P.S. Thank you standardtoaster for the deletedensity idea here http://www.algodoo.com/algobox/details.php?id=33510
The Simulation of Everything
I dream of a massive collab to make an accurate simulator of the evolution of space (id=56341), evolution of beings (id=56522), and chemicals (id=43179), etc. all wrapped into one.
User avatar
Mag8328
 
Posts: 16
Joined: Wed Jun 22, 2011 12:40 am

Re: Delete Using Density Script Not Working

Postby TC42 » Wed Jun 22, 2011 3:38 pm

You must use geval to spawn dynamic variables. Here is a link to the thread where it is explained. [link]

One thing that isn't mentioned completely in that thread is that you cannot use formatted code inside geval. You must type it out in paragraph form, which means that it is all very hard to read, so I recommend that you fix any mistakes before putting inside geval.
Image
Spambot wrote:Nowadays, memes usually are studied less in the field of biology, but more with the arena of psychology along with sociology. But, the major area of a meme, getting embraced and imitated all the time is what’s at any core connected with any meme.
User avatar
TC42
 
Posts: 984
Joined: Sun Jan 09, 2011 1:53 pm
Location: $ sudo apt get-install sandwich_


Return to Thyme scripting

Who is online

Users browsing this forum: No registered users and 10 guests