2
任何人都可以告訴我關於身體的尺寸與像素數量之間的關係(在box2d中)。一米長度有多少像素? 更具體地說,我在我的程序中使用下面的代碼行box2d中身體與像素的尺寸之間的關係iphone
polygon_body.SetAsBox(1,1);
在這段代碼中SetASBox的參數是什麼。我的意思是它是像素值還是其他單位。
任何人都可以告訴我關於身體的尺寸與像素數量之間的關係(在box2d中)。一米長度有多少像素? 更具體地說,我在我的程序中使用下面的代碼行box2d中身體與像素的尺寸之間的關係iphone
polygon_body.SetAsBox(1,1);
在這段代碼中SetASBox的參數是什麼。我的意思是它是像素值還是其他單位。
一米約爲32像素。
不看手冊,我的猜測是因爲SetAsBox()
是一個box2d函數,它需要以米爲單位的參數。所以,如果你有像素值,你可以只使用這個定義很容易地轉換爲米:
#define PTM_RATIO 32
包括這在你的文件,讓你忘記的比例,每當你需要之間的轉換隻需要使用這個定義像素和米。當您實際進行轉換時,您可以根據上下文分割或乘以該比例(32/1)。例如:
CGSize winSize = [[CCDirector sharedDirector] winSize];
b2Body *body = world->GetBodyList();
if(body->GetPosition().x*PTM_RATIO > winSize.width/2){
// do stuff....
}
如果你比較米(爲getPosition)像素(使用winsize)這個條件是行不通的,所以這是此轉換是非常有用的一個很好的例子。
或者,你的情況:
float pixel_width, pixel_height;
polygon_body.SetAsBox(pixel_width/PTM_RATIO, pixel_height/PTM_RATIO);