2013-07-26 2 views
0
_space = cpSpaceNew(); // setup the world in which the simulation takes place 
     _space->elasticIterations = _space->iterations; 
     _space->gravity = cpv(0.0f, GRAVITY); // initial gravity vector 

CGSize size = [[self view] bounds].size; 
//setup the 'edges' of our world so the bouncing balls don't move offscreen 
cpBody *edge = cpBodyNewStatic(); 
cpShape *shape = NULL; 

// left 
shape = cpSegmentShapeNew(edge, cpvzero, cpv(0.0f, size.height-10), 0.0f); 
shape->u = 0.1f; // minimal friction on the ground 
shape->e = 0.7f; 
cpSpaceAddStaticShape(_space, shape); 
// a body can be represented by multiple shapes 

// top 
shape = cpSegmentShapeNew(edge, cpvzero, cpv(size.width-10, 0.0f), 0.0f); 
shape->u = 0.1f; 
shape->e = 0.7f; 
cpSpaceAddStaticShape(_space, shape); 

// right 
shape = cpSegmentShapeNew(edge, cpv(size.width-10, 0.0f), cpv(size.width-10, size.height-10), 0.0f); 
shape->u = 0.1f; 
shape->e = 0.7f; 
cpSpaceAddStaticShape(_space, shape); 

// bottom 
shape = cpSegmentShapeNew(edge, cpv(0.0f, size.height-10), cpv(size.width-10, size.height-10), 0.0f); 
shape->u = 0.5f; 
shape->e = 0.15f; 
cpSpaceAddStaticShape(_space, shape); 

화면을 사용하여 사각형 공간을 만들지 만 둥근 모양으로 만들고 싶습니다. 모든 제안을 환영합니다다람쥐 둥근 공간 만들기

답변

0
_space = cpSpaceNew(); // setup the world in which the simulation takes place 
     _space->elasticIterations = _space->iterations; 
     _space->gravity = cpv(0.0f, GRAVITY); // initial gravity vector 

// CGSize size = [[self view] bounds].size; 
//setup the 'edges' of our world so the bouncing balls don't move offscreen 
cpBody *edge = cpBodyNewStatic(); 
cpShape *shape = NULL; 

int x1=384; 
int x2=73; 
int y1=191; 
int y2=191; 


for (int x=0 ; x<312; x++) 
{ 
    CGPoint Point1 = CGPointMake(x1, y1); 
    CGPoint Point2 = CGPointMake(x2, y2); 

    NSLog(@"(%i,%i) And (%i,%i) ",x1,y1,x2,y2); 

    shape = cpSegmentShapeNew(edge, Point1, Point2, 0.0f); 
    shape->u = 0.1f; // minimal friction on the ground 
    shape->e = 0.7f; 
    cpSpaceAddStaticShape(_space, shape); 
    x1--; 
    y2++; 

    // a body can be 
} 

x1=384; 
x2=695; 
y1=191; 
y2=191; 

for (int x=0 ; x<312; x++) 
{ 
    CGPoint Point1 = CGPointMake(x1, y1); 
    CGPoint Point2 = CGPointMake(x2, y2); 
    shape = cpSegmentShapeNew(edge, Point1, Point2, 0.0f); 
    shape->u = 0.1f; // minimal friction on the ground 
    shape->e = 0.9f; 
    cpSpaceAddStaticShape(_space, shape); 
    x1++; 
    y2++; 
    // a body can be 
} 
x1=73; 
x2=73; 
y1=502; 
y2=813; 

for (int x=0 ; x<312; x++) 
{ 
    CGPoint Point1 = CGPointMake(x1, y1); 
    CGPoint Point2 = CGPointMake(x2, y2); 
    shape = cpSegmentShapeNew(edge, Point1, Point2, 0.0f); 
    shape->u = 0.1f; // minimal friction on the ground 
    shape->e = 0.9f; 
    cpSpaceAddStaticShape(_space, shape); 
    y1++; 
    x2++; 
    // a body can be 
} 
x1=384; 
x2=695; 
y1=813; 
y2=813; 

for (int x=0 ; x<312; x++) 
{ 
    CGPoint Point1 = CGPointMake(x1, y1); 
    CGPoint Point2 = CGPointMake(x2, y2); 
    shape = cpSegmentShapeNew(edge, Point1, Point2, 0.0f); 
    shape->u = 0.1f; // minimal friction on the ground 
    shape->e = 0.7f; 
    cpSpaceAddStaticShape(_space, shape); 
    x1++; 
    y2--; 
    // a body can be 
} 

나는 해결책을 얻었습니다. Using this Document 나는 둥근 공간을 만듭니다. 감사합니다.

0

세그먼트 모양의 묶음에서 대략 원 모양에 가깝습니다.