2011-11-04 41 views
0

我無法弄清楚如何創建一個適合CGRect的cpShape。這是我到目前爲止所嘗試的,沒有任何成功:從cocos2d和花栗鼠的CGRect創建一個cpShape

CGPoint p1 = rect.origin; 
    CGPoint p2 = CGPointMake(rect.origin.x + rect.size.width, rect.origin.y); 
    CGPoint p3 = CGPointMake(rect.origin.x, rect.origin.y + rect.size.height); 
    CGPoint p4 = CGPointMake(rect.origin.x + rect.size.width, rect.origin.y + rect.size.height); 

    int num = 4; 
    CGPoint verts[] = {p2, p1, p3, p4}; 
    shape = cpPolyShapeNew(body, num, verts, cpvzero); 

我不明白爲什麼這不完全適合我的CGRect?

+0

是問題仍然是開放的,還是你的編輯解決這個問題嗎?如果是這樣,你應該發佈解決方案作爲答案,而不是作爲你的問題中的編輯。 – LearnCocos2D

+0

要回答我不得不等待8小時。這就是爲什麼我編輯 – rmonjo

+0

啊,我不知道。我將答案部分移到了答案上。 – LearnCocos2D

回答

1

回答代表的user251552

好吧,我想通了這一點:

//Converting points in chipmunk coordinates 
    CGPoint p1 = CGPointMake(-rect.size.width/2, -rect.size.height/2); 
    CGPoint p2 = CGPointMake(-rect.size.width/2, +rect.size.height/2); 
    CGPoint p3 = CGPointMake(+rect.size.width/2, +rect.size.height/2); 
    CGPoint p4 = CGPointMake(+rect.size.width/2, -rect.size.height/2); 

    int num = 4; 
    CGPoint verts[] = {p1, p2, p3, p4}; 

    shape = cpPolyShapeNew(body, num, verts, cpvzero);