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

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

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

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

21.08.2014, 18:59. Просмотров 535. Ответов 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;
я прощитал что бы он располагался чутка ниже тела.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2014, 18:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Box2d - создание в теле более одной фигуры\сенсора (C++):

Box2d лаги при создании более трех динамик объектов - C++
С чем столкнулся когда делал пример что бы понять как управлятся с box2d все решил, но была проблема с тем что при создании динамических...

Написать программу, демонстрирующую движение одной плоской фигуры относительно другой - C++
Ребята помогите! анимация, ни одной идеи в голове:cry: Написать программу, демонстрирующую движение одной плоской фигуры относительно...

Cout - вывод не более 10 чисел в одной строке - C++
Всем здравствуйте! Занимаюсь по книге Липпмана и др " С++ Вводный курс". В одном из материалов есть задание:Напишите программу, которая...

Найти возможные пути для шахматной фигуры «слон» от одной клетки до другой - C++
Найти возможные пути для шахматной фигуры «слон» от одной клетки до другой в пределах шахматной доски. Определить кратчайшие.

Удалить из списка информацию о студентах имеющих более одной двойки - C++
Создать структуру с именем Student с полями: фамилия, имя, номер группы, успеваемость (массив из пяти элементов). Сформировать односвязный...

Найти все числа из массива B (n), которые встречаются более чем в одной строке матрицы A (m, n) - C++
Помогите,пожалуйста,переделать с VBA на Си ,или же составить программу без всяких оптимизаций,просто,что бы работала. Вот задача :Найти все...

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

Добавлено через 12 минут
Цитата Сообщение от coloc Посмотреть сообщение
RUBE
только для JS?
для С++ он подойдет?
0
coloc
погромист
410 / 246 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
21.08.2014, 22:36 #4
Цитата Сообщение от Lynatik001 Посмотреть сообщение
для С++ он подойдет?
Да. Там есть пример loader-a для плюсов.
0
21.08.2014, 22:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2014, 22:36
Привет! Вот еще темы с ответами:

Вычислить индекс последнего минимального элемента, с использованием одной или более рекурсивных функций - C++
Здравствуйте. Не совсем понимаю, как эту программу переписать через рекурсию. Помогите, пожалуйста или подскажите , как это можно...

Напечатать все пары городов, связанных между собой не напрямую, но не более чем с одной пересадкой - C++
Помогите пожалуйста в C++ Сеть авиалиний, соединяющая города, задана матрицей связности M(k,k), где Mi(j = о, если города /, j не ...

Анимация в Box2D - C++
Наткнулась на видео с анимацией по Box2D. Только начала изучать и не понимаю, как работает этот проект. Поиски исходников не увенчались...

Box2d. Не запускается файл box2d.lib - Visual C++
Скачал с официального сайта исходники box2d. Открыл решение из c:\Users\Ytsukene\Documents\Visual Studio...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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