EasyTok/Tokamak - how to detect collision?
Blitz3D Forums/Blitz3D Userlibs/EasyTok/Tokamak - how to detect collision?| 
 | ||
| Is there a clever way to check whether a RB cube is collided with an AB cube? Basically I need to know whether a cube is 'sitting' on another cube (the 2nd cube is a flattened larger cube) | 
| 
 | ||
| Do you look the example : Beginning - Camera Move 01.bb It's an example with camera moving with physic + collisions | 
| 
 | ||
| I have EasyTok 1.1 - it does not have that example | 
| 
 | ||
| ??? 1.1 ??? Send me an email at "pagnisola at exequo dot com" | 
| 
 | ||
| done | 
| 
 | ||
| not received yet. | 
| 
 | ||
| Sent again from work this time. | 
| 
 | ||
| Sended :) | 
| 
 | ||
| Gotted :-) Thanks. | 
| 
 | ||
| There is no Beginning - Camera Move 01.bb exmaple in the 1.3 archive :-( | 
| 
 | ||
| Hi can someone please explaine how to detect collisions with EasyTok, if I load a mesh MyMesh=LoadMesh("MyMesh.3ds") TOK_CreateRBCube("Object",MyMesh,0,0,0,0,0,0,2,2,2,6,"",255,255,255,1,0) and set it for a Rb object and if i create a TokCollider ie Map1=LoadMesh("Map1.b3d") TOK_CreateTokCollider(Map1,"",Map1,0);,Erase=False I can see that the collisions work the two object interact with each other but I need know if they have collided. can anyone help pls ? | 
| 
 | ||
| That's exactly my point! You cannot use the Blitz collision detection as we are using dynamic bodies here. I don't think it can be done. | 
| 
 | ||
| The only way that i have find to make collisions is under the example : Beginning - Push Object 01.bb you can see how the camera can push an object. | 
| 
 | ||
| Filax, but that is not good for dymanic colisions. | 
| 
 | ||
| I know but i have not solutions for the moment :/ | 
| 
 | ||
| I have noticed that TOK_CreateTokCollider has a flag for collision but TOK_CreateRBCube has no flag not sure how to use the collision flag in TOK_CreateTokCollider  or even how to get a result from it, anyway I have thought of a possible workaround using Blitz collisions MyMesh=LoadMesh("MyMesh.3ds") TOK_CreateRBCube("Object",MyMesh,0,0,0,0,0,0,2,2,2,6,"",255,255,255,1,0) Map1=LoadMesh("Map1.b3d") TOK_CreateTokCollider(Map1,"",Map1,0);,Erase=False freeentity MyMesh CollisionFlag=createcube(0) scaleentity CollisionFlag,2,2,2 entityalpha CollisionFlag,0 Repeat ;keep the CollisionFlag entity at same position as the Rb ;object CollisionFlagX#=(TOK_GetRBY#"Object") CollisionFlagY#=(TOK_GetRBY#"Object") CollisionFlagZ#=(TOK_GetRBY#"Object") positionmeshCollisionFlag,CollisionFlagX,CollisionFlagY,CollisionFlagZ Until KeyHit (1) and just check for collisions with the CollisionFlag mesh and the map1 blitz mesh,I have not tested this and am assuming that when you create a Tok_CreateTokCollider mesh that the original biltz mesh is copyed and is still there. anyway this is just a quick idea I will test it tonight. | 
| 
 | ||
| -- | 
| 
 | ||
| This is a bit better but it is still not detecting a collision on every impact any ideas anyone mabey I need to play around with TOK_RefreshPhysic(.1,2)? Include "Inc_EasyTOK.bb" Const Balls=1,Maps=2 Graphics3D 800,600 SetBuffer BackBuffer() Cam=CreateCamera() PositionEntity Cam,0,0,-40 Global Light=CreateLight() PositionEntity Light,0,50,-10 TOK_InitWorld(0,-.6,0,1000,100) Ball1=CreateSphere() EntityType(ball1,Balls) TOK_CreateRBSphere("Ball",Ball1,0,0,0,0,0,0,1,.2,"",255,255,255,1,0) FreeEntity Ball1 Global Map=CreateCube() ScaleEntity Map,2,2,2 EntityType Map,Maps EntityColor Map,255,0,0 PositionEntity Map,0,-20,0 TOK_CreateTokCollider(Map,"",Map,Maps,0); Set the collision type to maps Collisions Balls,Maps,2,2 Repeat UpdateWorld() TOK_RefreshPhysic(.1,2) TOK_RefreshEasyTOK() RenderWorld() If EntityCollided(TOK_GetRBMesh("Ball"),Maps) TOK_ApplyImpulse("ball",0,.5,0) EndIf Flip Until KeyHit(1) TOK_FreePhysic() End | 
| 
 | ||
| You must know bain that blit have many many problems with collisions and moving objects :( In pure blitz detect collisions with animated objects is the hell, so with tokamak ... |