Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Программирование Android BluetoothAdapter - теряется объект после блокировки/выключения экрана https://www.cyberforum.ru/ android-dev/ thread1263089.html
Всем привет. Ситуация следующая. Написал тестовое приложение, которое соединяется c блутус модулем (с таким, если это важно) и отсылает на него сообщения по нажатию кнопки. Всё нормально коннектится и сигнал тоже нормально отправляется, но до тех пор, пока не погаснет экран смартфона (или если вручную его заблокировать). Когда я снова включаю экран, то все органы управления, не задействующие...
Как в Canvas взять значение Preference из Engine? Программирование Android
LiveWallpaperService.java public class SampleEngine extends Engine implements SharedPreferences.OnSharedPreferenceChangeListener { private LiveWallpaperPainting painting; private SharedPreferences prefs; SampleEngine() { SurfaceHolder holder = getSurfaceHolder(); prefs =...
Программирование Android Тема для дипломной работы Скоро уже нужно определиться с темой для бакалаврской работы,хотелось бы какое нибудь приложенице под android написать, но в голову ничего путного не лезет, может у кого есть какие нибудь идеи на этот счет, буду благодарен... https://www.cyberforum.ru/ android-dev/ thread1263014.html Программирование Android Как сделать, чтобы данные, введенные в EditText, сохранялись и пополнялись в новом активити? как сделать что бы данные введенные в EditText сохранялись и пополнялись в новом активити... Идея такая: вводим текст в edittext нажимаем кнопку и данные сохраняются и выводятся в новом активити, последующие вводы в EditText добавляют новое активити, вообщем должно получиться что то вроде списка комментариев...нашел здесь (http://androiddocs.ru/…-dannyx-v-nastrojkax/) пример с использованием... https://www.cyberforum.ru/ android-dev/ thread1262976.html
Программирование Android Куда бы выбросить Яндекс-карты?
Привет! Понимаю, что здесь не любят отвечать по теме Яндекс-карт, но всё равно поделюсь. Может, кто одумается. Многие знают, что развитие этого творения закончилось 2 года назад. Я мучался с ними некоторое время, смог за 2 дня подключить, с тех пор особых проблем не было. Плохо и то, что документация по ним отсутствует. Соответственно, приходится читать, как люди обходили ошибки. И вот, когда...
Программирование Android Put / Get Extra A1.class Intent in = new Intent(a1.this, a2.class); startActivity(a2); Toast.makeText(getBaseContext(), Integer.toString(i), Toast.LENGTH_SHORT).show(); in.putExtra("day", i); Здесь Toast показывает нужный int. Например 2. A2.class https://www.cyberforum.ru/ android-dev/ thread1262856.html
Программирование Android При нажатии на текстовое поле открыть экран набора с телефоном из поля https://www.cyberforum.ru/ android-dev/ thread1262779.html
Всем привет, такой вопрос, есть текстовое поле с номером телефона, как сделать, чтобы при нажатие на это поле открывался экран набора с телефоном из поля, спасибо!
Программирование Android RSS парсер, чтение и последующая запись в объект не осуществляются
При написании парсера произошел ступор:) Подскажите, что пошло не туда private ArrayList<Entry> readFeed(InputStream is) throws XmlPullParserException, IOException { XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser xpp = factory.newPullParser(); Log.d("debug", "starting working...
Программирование Android Проверить, что установленное приложение именно ваше https://www.cyberforum.ru/ android-dev/ thread1262647.html
Есть приложение бесплатное с рекламой (а как без нее). Можно купить другое приложение, которое эту рекламу скроет. Т.е. в бесплатном приложении я проверяю наличие установленного платного приложения-ключа по имени пакета. Но ведь можно создать похожий apk и реклама исчезнет. Можно ли как то защититься от этого? Ну допустим проверить подпись (сигнатуру) бесплатного приложения и платного (пароли при...
Программирование Android Не запускается приложение с AdMob https://www.cyberforum.ru/ android-dev/ thread1262581.html
Ребят подскажите. Может кто сталкивался с такой проблемой. Есть работающее приложение, но как только добавляю туда объявление AdMob, Eclipse виснет, эмулятор и приложение не запускается. Тоже самое происходит, если просто создать тестовое приложение для AdMob. Я делаю всё как написано на оф. сайте, но ничего не выходит, Eclipse виснет, какие-то проблемы с нехваткой памяти. Помогите, я не знаю,...
Бакалаврская работа Программирование Android
Здраствуйте! Посоветуйте, пожалуйста, интересную тему на бакалаврский проект по аднроиду.
Программирование Android Смартфон, как mifare карта (nfc интерфейс) https://www.cyberforum.ru/ android-dev/ thread1262113.html
Добрый день, пытаюсь разобраться с nfc интерфейсом. Пытаюсь представить смартфон как mifare карту. И вручную
7 / 7 / 4
Регистрация: 07.07.2011
Сообщений: 583
0

Физика в libGDX - Программирование Android - Ответ 6649510

26.09.2014, 11:38. Показов 2838. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. В libGDX для двух мерных игр можно использовать физику Box2D. Предлагаю в этой теме изучить возможности этой библиотеки на примере игры Hill Climb Racing,начать с модели машинки и попытаться побороть возможные баги Box2D-libGDX .
В качестве документации могу предложить http://box2d.org/manual.pdf , а для тех кто не дружит с английским есть перевод http://www.gamedev.ru/code/forum/?id=87747 . В приведенных ссылках все написано достаточно понятно, потому сразу перейду к сути.
Начнем с колес
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//создание колес-----------------------------------------------------------------------------------
private float NRad;public Body wheeln1;public Fixture fixwheeln1;
public void createwheeln1(){
BodyDef def = new BodyDef();def.type = BodyType.DynamicBody;def.position.set(posbeginX,posbeginY);def.angularDamping=2.5f;wheeln1 = world.createBody(def);
CircleShape circlen = new CircleShape();circlen.setRadius(NRad);circlen.setPosition(new Vector2(0f, 0f));
//--------------------------
FixtureDef fixtureDef = new FixtureDef();FixtureDefn(fixtureDef,circlen);
//---------
fixwheeln1 = wheeln1.createFixture(fixtureDef);circlen.dispose();
}
public Body wheeln2; public Fixture fixwheeln2;
public void createwheeln2(){
BodyDef def2 = new BodyDef();def2.type = BodyType.DynamicBody;def2.position.set(posbeginX+3*NRad,posbeginY);def2.angularDamping=2.5f;wheeln2 = world.createBody(def2);
CircleShape circlen = new CircleShape();circlen.setRadius(NRad);circlen.setPosition(new Vector2(0f, 0f));
//--------------------------
FixtureDef fixtureDef = new FixtureDef();FixtureDefn(fixtureDef,circlen);
//---------
fixwheeln2 = wheeln2.createFixture(fixtureDef);circlen.dispose();
}
// Соединяем колеса жестким отрезком
public DistanceJointDef jtwnheeln12;
public void jointwnheeln12(){
jtwnheeln12=new DistanceJointDef();jtwnheeln12.initialize(wheeln1, wheeln2, getPosition(), getPosition2());world.createJoint(jtwnheeln12);
}
//создание колес--------------------------------------------------------------------------------------
Ну и для того, чтобы было интереснее при нажатие на правой стороне экрана будем крутить колесо вперед, а на левой - назад.
Java
1
2
3
4
5
6
public void ChangeNavigation(float delta){
Vector2 vel = wheeln1.getLinearVelocity();wheeln1.setLinearVelocity(vel);
if(touchn.boolmoven==1){wheeln1.applyTorque(-35);
}else if(touchn.boolmoven==-1){wheeln1.applyTorque(35);
}
}
Можете посмотреть исходник (Racing). В целом, до настоящего момента все идет гладко. Но при попытке к данной конструкции присоединить кузов начинаются проблемы.Кузов не должен двигаться в горизонтальном положение (или параллельно оси соединения колес) . Для этого нужно такое соединение, которое может перемещаться только в одном направление и не может вращаться. И как написано в документации для этой цели есть PrismaticJointDef

A prismatic joint allows for relative translation of two bodies along a specified axis. A prismatic joint
prevents relative rotation. Therefore, a prismatic joint has a single degree of freedom.

Однако это не совсем так. Для того, чтобы увидеть на сколько верное данное заявление можно создать и соединить 2 прямоугольника DistanceJointDef и PrismaticJointDef соединением.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//--------------------------------------------------------------------------------------
public Body skyhookn1;
public void createskyhookn1(){
BodyDef def = new BodyDef();def.type = BodyType.DynamicBody;def.position.set(posbeginX,posbeginY);skyhookn1 = world.createBody(def);
PolygonShape polyn = new PolygonShape();polyn.setAsBox(NRad,NRad/4);
FixtureDef fixtureDef = new FixtureDef();fixtureDef.shape = polyn;fixtureDef.density = 8.5f;
Fixture fixskyhook=skyhookn1.createFixture(fixtureDef);polyn.dispose();skyhookn1.setFixedRotation(true);
}
public Body skyhookn2;
public void createskyhookn2(){
BodyDef def = new BodyDef();def.type = BodyType.DynamicBody;def.position.set(posbeginX,posbeginY+2*NRad);skyhookn2 = world.createBody(def);
PolygonShape polyn = new PolygonShape();polyn.setAsBox(NRad,NRad/4);
FixtureDef fixtureDef = new FixtureDef();fixtureDef.shape = polyn;fixtureDef.density = 8.5f;
Fixture fixskyhook=skyhookn2.createFixture(fixtureDef);polyn.dispose();
}
public DistanceJointDef jtskyhookncarn;
public void Distanceskyhookwnncarn(){
jtskyhookncarn=new DistanceJointDef();
jtskyhookncarn.initialize(skyhookn1, skyhookn2,skyhookn1.getPosition(),skyhookn2.getPosition());
//jtskyhookncarn.frequencyHz=6;jtskyhookncarn.dampingRatio=0.285f;
world.createJoint(jtskyhookncarn);
}
PrismaticJointDef Prismaticskyhookncarn;
public void PrismaticSkyhooknCarn(){
Prismaticskyhookncarn=new PrismaticJointDef();
Vector2 worldAxis= new Vector2(0.0f, 1.0f);
Prismaticskyhookncarn.initialize(skyhookn1, skyhookn2,skyhookn1.getPosition(),worldAxis);
Prismaticskyhookncarn.lowerTranslation = -diametnwheeln/4;
Prismaticskyhookncarn.upperTranslation = diametnwheeln/4;
Prismaticskyhookncarn.enableLimit = true;
Prismaticskyhookncarn.maxMotorForce = 2.5f;Prismaticskyhookncarn.motorSpeed = 8.0f;
Prismaticskyhookncarn.enableMotor = true;world.createJoint(Prismaticskyhookncarn);
}
//-----------------------------------------------------------
Ну и заменим управление
Java
1
2
3
4
5
6
public void ChangeNavigation(float delta){
Vector2 vel = skyhookn1.getLinearVelocity();skyhookn1.setLinearVelocity(vel);
if(touchn.boolmoven==1){skyhookn1.applyForce(325, 0, skyhookn1.getPosition().x, skyhookn1.getPosition().y);
}else if(touchn.boolmoven==-1){skyhookn1.applyForce(-325, 0, skyhookn1.getPosition().x,skyhookn1.getPosition().y);
}
}
Я зафиксировал вращение нижнего прямоугольника skyhookn1.setFixedRotation(true); чтобы конструкция не упала на пол.
При столкновение со стенкой верхний прямоугольник будет дергаться горизонтально, хотя потом вернется в свое положение. А должен синхронно останавливаться с нижним (исходник Racing2). Вряд ли при такой стабильности получится нормальная физика.
Как вы думаете, это баг libGDX или нужно что то дописать? Посоветуйте как можно решить эту проблему?
Помотрите пожалуйста исходник Racing2, все что касается физики находится в пакете com.nikitin.phisics в классе MainCar и чуть чуть в AllObjects.

Вернуться к обсуждению:
Физика в libGDX Программирование Android
Миниатюры
Физика в libGDX   Физика в libGDX   Физика в libGDX  

Вложения
Тип файла: 7z Racing.7z (4.75 Мб, 12 просмотров)
Тип файла: 7z Racing2.7z (5.45 Мб, 11 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2014, 11:38
Готовые ответы и решения:

Libgdx AI
Добрый день , кто нибудь пользовался данной вещью? https://github.com/libgdx/gdx-ai/wiki Просто...

SQLite и libGDX
Здраствуйте! Программирую потихоньку игры на либе, так чисто для себя. Тут пришла в голову идея...

Libgdx polygon
Добрый день, возникла следующая проблема : создаю объект класса Polygon...

Splash на libgdx
Всем привет есть 2 атласа 2048x2048 на андроиде 4.2 и выше, работает все отлично, все что ниже...

0
26.09.2014, 11:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2014, 11:38
Помогаю со студенческими работами здесь

Нужен ли мне LibGDX?
Уважаемые программисты, подскажите, пожалуйста, мне ответ на следующий вопрос: - Я хочу написать...

LibGDX вращение текстуры
Здравствуйте, есть ли в llibGDX какой-нибудь способ повернуть текстуру кроме обычного draw, он не...

Компиляция игры, libGDX
Здравствуйте. Помогите скомпилировать проект. Да, странная просьба) Я так понял, компилировать...

LibGDX загрузка аудио
Ни как не получается загрузить музыку. В папку assets помещаю drop.wav rain.mp3 в методе create...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru