Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   [Box2D] У кого-нибудь есть опыт создания top-down гоночных игр на box2d? (http://www.flasher.ru/forum/showthread.php?t=145694)

goodguy 16.10.2010 19:56

У кого-нибудь есть опыт создания top-down гоночных игр на box2d?
 
Собственно сабж :)

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

И так, ближе к делу. Как создать мир бокс2д с гравитацией понятно, как создавать тела и их описания тоже (в общем ничего сложного), интересует другое. А именно:

При создании игры с видом сверху гравитация естественно отключается, но ей насмену приходит linearDamping. Собственно это помогает останавливать "автомобиль" после разгона, но как применять angularDamping? Или, если я что-то неправильно понял, то как заставить этот прямоугольник (машину), реалистично поворачивать? То есть, если я при движении нажму клавишу поворота, чтобы машину слегка заносило, но это не было похоже на движение по льду (пока у меня получалось сделать только подобное)

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

з.ы. Пример искал, и даже находил, но все сайты типа emanueleferonato и.п. полная лажа, во-первых в основном все примеры с видом сбоку, во-вторых все сделано дочтаточно коряво, как например это http://www.emanueleferonato.com/2009...ke-box2d-cars/

Такого движения мне не нужно :)

NikolyA 16.10.2010 20:10

ну обычно берут движок и далее его наворачивают

goodguy 16.10.2010 20:37

Это больше походит на офтоп.

Движок взят, box2d. Вопрос, по-моему задан конкретный, а не о том, что обычно делают с движком ;)

Если имелось в виду, доработка того примера Эмануэле, то это я делать пробовал, не получилось. Но он, видимо сам сделать ничего не смог, по-этому выложил такое "роботоподобное движение", так сказать, чем богаты, тому и рады.

Александр 17.10.2010 00:10

Раз просто поворт тела не катит)
и кол-во машин не много
предлогаю такие варианы:
http://savepic.ru/1856253.jpg
http://savepic.ru/1866492.jpg

по мне той проблемы которой у тебя не будет.
попробуй расскажешь тоже гонки думаю сделать

Ralph_DiMarko 18.01.2011 23:45

Код AS3:

                private function moveCar():void
                {
                        if (bleft) {
                                carAng ++;
                        }else if (bright) {
                                carAng --;
                        }
                        if (bup) {
                                speed += accel;
                        }else if (bdown) {
                                speed -= accel;
                        }
                        var angle:Number = carAng * Math.PI / 180;
                        var speedX:Number = speed * Math.cos(angle);
                        var speedY:Number = speed * Math.sin(angle);
                        boxBody.SetAngle(angle);
                        boxBody.ApplyForce(new b2Vec2(speedX, speedY), boxBody.GetPosition());
                }

Вроде что-то получается, но ее просто нимеренно заносит, как будто по льду катаюсь...

Dukobpa3 19.01.2011 00:16

Так а чем пример Эмануэля не нравится? вполне реалистично. Разгон, занос.

Добавлено через 56 секунд
Это не оффтоп, просто сам в свое время с него передирал, может если подробнее скажешь что именно надо - смогу помочь.

Ralph_DiMarko 19.01.2011 00:58

Вложений: 1
Эмануэля вариант слишком большой и пока что немного не понятный для меня, хочется понимать что делаю, и тем более в моем случае колеса как бы не нужны. Плюс уже три раза пытался обрезать вариант Эмануэля, там все между собой связано и одно без другого не работает.

Я пытаюсь сделать top-down машинку, все работает кроме поворотов.
Объект начинает двигаться, начинаю поворачивать, сам объект меняет свой угол куда нужно, но инерция неправильно отрабатывает, как будто на машине заехал на каток, начинаешь набирать скорость и поворачиваешь, машину несет боком, потом она по чуток уже двигается в правильном направлении. Надеюсь смог выразится :)

swf прикрепил

goodguy 19.01.2011 13:12

Цитата:

Так а чем пример Эмануэля не нравится? вполне реалистично. Разгон, занос.
Фуфло его пример. Движется не реалистично, доработке практически не полежит. У эмануэле вообще все примеры конченые.
Самый лучший пример гонок на бокс 2д, что я видел, была игра Lil Racerz http://www.playground.ru/flash/racing/3733/ автор которой рашьше зависал на флешките. Но автору я писал, он куда-то бесследно исчез :D

Я на сколько мог его игру растребушил, но так и не понял как машины собраны, точнее как они управляются.

Division 19.01.2011 15:27

Я в свое время делал гонки. Не на флеше правда. Физику свою юзал, некое подобие верлетовой.
На бокс 2д я бы делал примерно как эмануэле. только вместо 4 колес сделал бы 2. Одно спереди одно сзади.
Ключевая идея в том чтоб гасить боковую скорость у колес.
Есть вектор направления колеса. Есть вектор скорости колеса (колесо двигается по этому вектору). Нужно спроецировать вектор скорости на вектор направления колеса. Тогда машинка будет вести себя реалистично, ехать только вдоль направления колес.
Повороты машины осуществляются путем поворота вектора колеса.
В бокс2д колеса можно сделать просто кругами, которые "прибиты" к корпусу машины. Одно спереди, одно сзади.
Если нужны заносы, проецирование вектора скорости осуществляется не сразу, а за несколько итераций.

Ralph_DiMarko 19.01.2011 22:31

вау! Как бы это все перевести на as3 да еще и под box2d )
спасибо!
Буду колдовать и попробую еще с Nape поиграться..


Часовой пояс GMT +4, время: 19:00.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.