Надеюсь, я могу описать мою ситуацию ясно, как всякий раз, когда я пытаюсь описать его другим на доске или ручку и бумагу, она занимает несколько попыток :)сдерживающими заднее колесо на переднее колесо
Часть моей программы включает в себя тележка, которая едет вдоль рельса, а тележка работает на двух колесах. Рельсы - это простая линия, которая поднимается и огибается в кривых, а также выравнивается. Чтобы создать уровень, я использую NSMutableArray из CGPoints и рисую их на экране.
Мое текущее обнаружение столкновения включает в себя использование каждого x-cordinate колес и сравнение его с массивом значений точек x. Когда это значение между двумя точками x-values, я могу использовать градиент, чтобы узнать, находится ли оно ниже/под y-значением в этой точке. Это отлично работает, когда я использую определенные значения X.
Итак, возникает проблема.
Во-первых, у меня есть переднее колесо, которое отлично перемещается по этой линии с правильным x и правильным y-позицией. Проблема, с которой я столкнулся, - создать заднее колесо, которое следует за этим передним колесом. Заднее колесо также отлично следит за строкой, но всегда оно находится на расстоянии X перед передним колесом, это оказывается нереалистичным, так как когда вы поднимаетесь или опускаетесь по крутым склонам, расстояние между колесами слишком велико из-за разницы в Y.
Пример:
O ....... О
Хилл Пример:
О
........ О
То же расстояние в x, разница в Y, поэтому расстояние между гипотенузой больше и создает впечатление раздвигания колес. Мне нужно ограничить заднее колесо передним колесом, так что это правда (гипотенуза) расстояние всегда одно и то же. Трудность, с которой я сталкиваюсь, заключается в том, что, поскольку это связано с изменением x-позиции, я не могу справиться с обнаружением столкновения.
Если я начну подниматься в гору, я должен изменить скорость ее, чтобы упасть за переднее колесо, поэтому мне нужно изменить ее значение x, чтобы оставаться на том же истинном расстоянии за рулем, теперь это значение y будет неправильным, так как он окажется в полу.
Разбитые мои мозги и офисы в течение нескольких дней, любая помощь, пожалуйста?
Это может быть хороший вопрос для математического обмена, если вы не получите его здесь. http://math.stackexchange.com/ Похоже, что это будет простая математическая концепция, которая сделает это. IE: cos (гипотенуза)? Что-то вроде этого, вместо того, чтобы изменять Y, вы бы изменили соотношение x: y – bradenkeith
, проблема в том, что он работает только в том случае, если градиент под обоими колесами одинаковый. Если он находится на быстром уклоне, это приведет к тому, что маховик окажется выше или ниже холма – user355622