Вопрос

Вот моя проблема.У меня есть твердое тело бурундука (стоящая банка из-под газировки), и я хочу перенести его центр тяжести на нижнюю часть объекта, чтобы он мог упасть на бок, когда к его верхней части прилагается сила.

Я на правильном пути?

1) По какой-то причине у меня возникли проблемы с настройкой центр тяжести тела до определенного значения.У кого-нибудь есть простое решение, пожалуйста?

2) Что насчет центр тяжести спрайта?Мне тоже нужно его менять?Если да, то как?

Спасибо за разъяснение.

Йоханн Т.

Это было полезно?

Решение

Неважно !

Я отвечаю на свои вопросы, поскольку это было 16 часов назад, и мне пришлось найти его самостоятельно (да, мне потребовалось так много времени, чтобы понять это, какая пустая трата времени).К счастью для вас, я собираюсь поделиться решением, чтобы вам не пришлось тратить много часов на его поиск.

1) По какой-то причине у меня возникли проблемы с установкой центра тяжести тела на определенное значение.У кого-нибудь есть простое решение, пожалуйста?

Отвечать:Вы не можете изменить центр тяжести тела, потому что в реальном симулируемом мире центр тяжести НЕ МОДИФИЦИРУЕМЫЙ, если только вы на самом деле не трансформируете объект!!!

Чтобы сделать это, не нужно создавать тело коробчатой ​​формы.Вам нужно создать объект, используя вершины, чтобы на него могла влиять любая физика, а не только движение.

вот код, который я использовал для создания рамки вокруг объекта:

int num = 4;
cpVect verts[] = {
    cpv(-15,-15),
    cpv(-15, 15),
    cpv( 15, 15),
    cpv( 15,-15),
};
body = cpBodyNew(1.0f, cpMomentForPoly(1.0f, num, verts, cpvzero));
body->p = cpv(-280, 240);
cpSpaceAddBody(space, body);
shape = cpPolyShapeNew(body, num, verts, cpvzero);
shape->e = 0.0f; shape->u = 1.5f;
shape->collision_type = 1;
cpSpaceAddShape(space, shape);

2) А как насчет центра тяжести спрайта?Мне тоже нужно его менять?Если да, то как?

используйте этот метод:

[sprite setTransformAnchor:ccp(27,54)];

Но помните, что координаты начинаются в левом нижнем углу экрана.Но вам не придется трогать спрайт, если правильно обращаться с физикой тела.

Удачи сейчас!

Йоханн Т.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top