static int tolua_extensions_CCPhysicsSprite_setB2Body00(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if ( !tolua_isusertype(tolua_S,1,"CCPhysicsSprite",0,&tolua_err) || !tolua_isusertype(tolua_S,2,"b2Body",0,&tolua_err) || !tolua_isnoobj(tolua_S,3,&tolua_err) ) goto tolua_lerror; else #endif { CCPhysicsSprite* self = (CCPhysicsSprite*) tolua_tousertype(tolua_S,1,0); b2Body* pBody = ((b2Body*) tolua_tousertype(tolua_S,2,0)); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in function 'setB2Body'", NULL); #endif { self->setB2Body(pBody); } } return 0; #ifndef TOLUA_RELEASE tolua_lerror: tolua_error(tolua_S,"#ferror in function 'setB2Body'.",&tolua_err); return 0; #endif }
KDvoid TestBox2D::addNewSpriteWithCoords ( const CCPoint& tPosition ) { // Define the dynamic body. //Set up a 1m squared box in the physics world b2BodyDef tBodyDef; tBodyDef.type = b2_dynamicBody; tBodyDef.position.Set ( tPosition.x / PTM_RATIO, tPosition.y / PTM_RATIO ); //tBodyDef.userData = sprite; b2Body* pBody = m_pWorld->CreateBody ( &tBodyDef ); // Define another box shape for our dynamic body. b2PolygonShape tDynamicBox; tDynamicBox.SetAsBox ( 0.5f, 0.5f ); // Define the dynamic body fixture. b2FixtureDef tFixtureDef; tFixtureDef.shape = &tDynamicBox; tFixtureDef.density = 1.0f; tFixtureDef.friction = 0.3f; pBody->CreateFixture ( &tFixtureDef ); CCNode* pParent = this->getChildByTag ( kTagParentNode ); // We have a 64x64 sprite sheet with 4 different 32x32 images. The following code is // just randomly picking one of the images KDint nOffsetX = ( CCRANDOM_0_1 ( ) > 0.5f ? 0 : 1 ); KDint nOffsetY = ( CCRANDOM_0_1 ( ) > 0.5f ? 0 : 1 ); CCPhysicsSprite* pSprite = CCPhysicsSprite::createWithTexture ( m_pSpriteTexture, ccr ( 32 * nOffsetX, 32 * nOffsetY, 32, 32 ) ); pParent->addChild ( pSprite ); pSprite->setB2Body ( pBody ); pSprite->setPTMRatio ( PTM_RATIO ); pSprite->setPosition ( tPosition ); }