В XNA нет физики. Это граф. движок. А прикрутить можно любой. Хоть PhysX, хоть Havok. Fougerite - Rust Server OpenSource API TerraDev - Terraria OpenSource Hack
Во-первых тебе нужно обозначить специальный прямоугольник типа BoundingBox (если память не подводит, сейчас с телефона сижу=), он нужен для того, чтобы отслеживать зону влияния гравитации, и сделать её нужно больше самого тела, обладающего притяжением. В каждом шаге проверяй, столкнулось ли какое-нибудь тело с ним, если да, то:
1) Найди расстояние от тела до Земли (можешь вычесть вектор положения Земли из вектора объекта, например ) 2) Вычисляй силу гравитации в зависимости от расстояния (чем меньше расстояние, тем больше сила) 3) Создай новый вектор, который равен положению объекта + сила гравитации, и направленный к Земле 4) Складывай полученный вектор из пункта 3) с вектором самого тела
Не забывай все характеристики обновлять каждый шаг. Вроде это самое простое)
Сообщение отредактировал Rayman2u - Среда, 30 Марта 2011, 14:59
Всем спасибо кто ответил. Попробую осуществить предложенными способами или прикрутить физ движок.
Добавлено (30.03.2011, 20:57) --------------------------------------------- 4 часа провозился,а желанного результата не добился . Подскажите как PhysX.net прикрутить к XNA 4.0
для Box2D нужно установить Windows Phone Developer, а у меня на XP устанавливаться не хочет:(
поищи другие 2д физические библы, я так понял у тебя 2д проект, поэтому подсоединять к нему такого монстра как PhysX как то неразумно, как по мне. Из 2д физ движком могу только посоветовать chipmunk и box2d, вот только дело в том что использовал я их в связке с pygame, про связку с ХНОЙ - не знаю, не использовал @noTformaT
Это не движок, а графический framework, высокоуровневая обертка над DirectX. Логическое продолжение канувшего в лету MDX
Если графическая его часть и устроена так, как ты говоришь, то XNA Game Studio - это полноценный игровой движок с функциями ввода-вывода, вывода графики, работы в сети (ну это уже необязательно, я думаю, для ПК, и сделано только для Xbox 360), звука и т.п. [quote]Ничто не истина, всё дозволено[/quote]
Печально смотреть на такие сообщения чуть более, чем полностью. Мало того, что люди не понимают о чем идет речь, так еще и пытаются убедить таких же зеленых новичков в своей безусловной правоте. Есть аксиома("XNA движок"), а кто не согласен, тот дурак. Уважаемые погромизды, определите тогда разницу между игровым движком и набором библиотек для работы с графикой, звуком, сетью. По вашему SDL или ClanLib тоже игровые движки? XNA - это точно такая же прослойка, фреймворк для управляемого кода. Коллизии есть? Отлично, но движком от этого не станет. Звук есть? Ну так в directX тоже есть API для работы со звуком, давайте и его движком назовем.
Quote
XNA Game Studio - это полноценный игровой движок.
GS - это IDE для разработки игр на XNA, так к слову сами разработчики заявили. Прекращайте подменять понятия уже.