Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lynatik001
38 / 32 / 4
Регистрация: 28.09.2012
Сообщений: 620
#1

Box2d - создание в теле более одной фигуры\сенсора - C++

21.08.2014, 18:59. Просмотров 483. Ответов 3
Метки нет (Все метки)

Вот у меня есть персонаж - вот так он создается
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    player = lvl->GetObject("Naruto");
    b2BodyDef bodyDef;
    bodyDef.type = b2_dynamicBody;
    bodyDef.position.Set(player.rect.left, player.rect.top);
    bodyDef.fixedRotation = true;
    playerBody = world->CreateBody(&bodyDef);
    b2PolygonShape shape; shape.SetAsBox(player.rect.width / 2, player.rect.height / 2);
    b2FixtureDef fixtureDef;
    fixtureDef.shape = &shape;
    fixtureDef.density = 1.0f; fixtureDef.friction = 0.3f;
    playerBody->CreateFixture(&fixtureDef);
    plwidth = player.rect.width;
    plheight = player.rect.height;
как мне в этом теле создать еще 1 фигуру и розместить ее по локальным координатам.
Что-то в документации видел setLocalPosition, но его нет. Да и понятия не имею как еще 1 фигуру создать в теле, ли добавить еще 1 фикстуру, или еще полигон шейп добавить с фикстурой. Документация капец скудная. Сижу мучаюсь.
что бы понять и потом создать сенсор под фигурой для того что б смотреть ли нахожусь я на земле или в воздухе. Что б не мог прыгать пока в воздухе.

Добавлено через 12 часов 1 минуту
Актуально, забыл написать использую последнюю версию box2d

Добавлено через 4 часа 25 минут
Сам решил, Может кому интересно будет.
Нашел методом тыка, рыскал в методах смотрю о SetAsBox принимает еще 2 параметра во 2 варианте. И вижу что один из тех параметров b2Vec2 и понял что это координаты.
версия Box2D_v2.3.0
C++
1
2
3
4
5
6
7
    const b2Vec2 pos(0, player.rect.height/2);
    b2PolygonShape shape2; shape2.SetAsBox(player.rect.width/2, 3, pos,0);
    b2FixtureDef fixtureDef2;
    fixtureDef2.isSensor = true;
    fixtureDef2.shape = &shape2;
    fixtureDef2.density = 1.0f; fixtureDef2.friction = 0.3f;
    playerBody->CreateFixture(&fixtureDef2);
вот таким нехитрым образом добавляем еще одну фигуру(сенсор), убрав
C++
1
fixtureDef2.isSensor = true;
я прощитал что бы он располагался чутка ниже тела.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2014, 18:59     Box2d - создание в теле более одной фигуры\сенсора
Посмотрите здесь:

C++ Вводить название фигуры, выводить формулу для вычисления площади этой фигуры
Найти возможные пути для шахматной фигуры «слон» от одной клетки до другой C++
C++ Cout - вывод не более 10 чисел в одной строке
C++ Программа вычисления местонахождения точки относительно фигуры (лежит ли точка внутри, на контуре или вне фигуры)
Напечатать все пары городов, связанных между собой не напрямую, но не более чем с одной пересадкой C++
C++ Найти все числа из массива B (n), которые встречаются более чем в одной строке матрицы A (m, n)
Box2d как установить в проект? C++
C++ Box2d лаги при создании более трех динамик объектов
Создание ini файла в одной папке с приложением C++
C++ Не получается создать мир в Box2D
Написать программу, демонстрирующую движение одной плоской фигуры относительно другой C++
Ошибка при запуске Box2d Visual Studio 2013 C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
21.08.2014, 19:39     Box2d - создание в теле более одной фигуры\сенсора #2
Lynatik001, создавать вручную объекты Box2d тот еще геморрой. Лучше пользуйся редакторами тел, сам лично пользуюсь RUBE.
Lynatik001
38 / 32 / 4
Регистрация: 28.09.2012
Сообщений: 620
21.08.2014, 20:05  [ТС]     Box2d - создание в теле более одной фигуры\сенсора #3
Цитата Сообщение от coloc Посмотреть сообщение
создавать вручную объекты Box2d тот еще геморрой. Лучше пользуйся редакторами тел, сам лично пользуюсь RUBE.
ок посмотрю что за вещь)

Добавлено через 12 минут
Цитата Сообщение от coloc Посмотреть сообщение
RUBE
только для JS?
для С++ он подойдет?
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
21.08.2014, 22:36     Box2d - создание в теле более одной фигуры\сенсора #4
Цитата Сообщение от Lynatik001 Посмотреть сообщение
для С++ он подойдет?
Да. Там есть пример loader-a для плюсов.
Yandex
Объявления
21.08.2014, 22:36     Box2d - создание в теле более одной фигуры\сенсора
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru