*NEW* Current Version on STEAM: 16.026Logfile: EN, DEWebchat:Visit the chat
// --------------------------------- //// Project: box2dSoftbody// Start: Thursday, May 31, 2012// IDE Version: 10.202// SETCURRENTDIR("Media") // go to media filesb_InitWorld(0,0,640,480,0,.96,TRUE)b_CreateGroundbox(320,440,640,80)//------------------------CHAIN------------------------//Init the chainLOCAL myChain AS TChainmyChain.AddChainLink(100,300, 0,1,0,10) //create the "sticked" parent//create 20 chain link childsFOR i% = 0 TO 49 myChain.AddChainLink(110 + i*10,300, 1,10,0,10)NEXTmyChain.AddChainLink(610,300, 0,1,0,10)myChain.Generate() //generate the "physics" chain"//------------------------CHAIN------------------------b_CreateBox(50,10,0,300,200,25,25)//main loopWHILE TRUE b_Update(.1, 10) b_WorldDebug()SHOWSCREENWEND//CHAIN TYPESTYPE TChain chainLinks[] AS TChainLink //Add a link to the chain FUNCTION AddChainLink: x%, y%, mass#, friction#, restitution#, size# LOCAL link AS TChainLink link.Init(x, y, mass, friction, restitution, size) DIMPUSH self.chainLinks[], link ENDFUNCTION //Generate the chain after creating the links FUNCTION Generate: FOR i% = 0 TO LEN(self.chainLinks[]) - 1 LOCAL link AS TChainLink link = self.chainLinks[i] link.body = b_CreateCircle(link.mass, link.friction, link.restitution, link.x, link.y, link.size) self.chainLinks[i] = link IF i > 0 LOCAL linkBefore AS TChainLink linkBefore = self.chainLinks[i-1] DEBUG linkBefore.body + ", " + link.body + "\n" link.joint = b_JointDistance(link.body, linkBefore.body, link.GetX(), link.GetY(), linkBefore.GetX(), linkBefore.GetY()) ENDIF NEXT ENDFUNCTIONENDTYPETYPE TChainLink x% y% mass# friction# restitution# size body% joint% FUNCTION Init: x%, y%, mass#, friction#, restitution#, size# self.x = x self.y = y self.mass = mass self.friction = friction self.restitution = restitution self.size = size / 2 ENDFUNCTION FUNCTION GetX%: RETURN b_BodyGetPosX(self.body) ENDFUNCTION FUNCTION GetY%: RETURN b_BodyGetPosY(self.body) ENDFUNCTIONENDTYPE