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);