Algodoo: Scripts

Change size when collided

onColide=(e)=>{
	(e.other.size(0))>0.5?{
    		e.other.size = e.other.size * 0.5
    	}:{
		e.other.size = [2.0,1.0]
	}
}

回転するmany Rectangle

for(10, (m) => { for(7, (n) =>{ 
	scene.camera.zoom=60;
	mm=App.mousePos;
	scene.addBox({
		pos := [ mm(0)*m, 3*n +3]; 
		size := [2.0,1.0];
		color=[0,0,0,1];
		postStep=(e)=>{
			(sim.tick % 3) == 0 ? {
			e.this.angle = e.this.angle + 0.5
		} : {}
		}
	})})}
);

rectangle with hinge and pen

Scene.addBox({
	pos:=[0,3];
	size=[0.1,3];
	color=[1,1,1,1]; //white
	geomID=1
	});  //pos=[x,y] , size=[w,h]
Scene.addHinge({
	size=0.1;
	geom0 = 1;  //必要 
	geom0pos = [0, 1.4];
	motor = true;
	motorSpeed = 1.0;
	ccw = false;  //回転方向 左回り
	geom1=0;    //いる
		});
Scene.addBox({
	pos:=[0,1];
	size=[0.1,1.2];
	color=[1,0,1,1]; //white
	geomID=2
	});  
Scene.addHinge({
	size=0.1;
	
	geom0 = 2;  //必要 
	geom0pos = [0, 0.5];
	motor = true;
	motorSpeed = 1.0;
	ccw = false;  //回転方向 左回り
	geom1 = 1; 
		});
scene.addPen({
	geom0 = 2;
	pos := [0,0.47];
	size := 0.05;
	color=[1,1,0,1]; //white
	fadeTime=10;
	
});

hinge

scene.camera.pan=[3.4,5];
scene.camera.zoom=69;
for(8, (m) => {
	for(8, (n) =>{ 
		scene.addBox({ 
			pos = [ (1+0.1)*m, (1+0.2)*n+1 ];  //位置
			size = [1,0.15 ];  //大きさ
			color=[0,0,0,1];
			geomID=1;
		});
		scene.addHinge({
			size=0.15;
			geom0 = 1;  //必要 
			geom0pos = [0, 0];
			motor = true;
			motorSpeed = 3;
			ccw = true;  //回転方向 右回り
			geom1 = 0; 
			//geom1pos = [ (1+0.1)*m, (1+0.2)*n+1 ];
		});
	});
});