Игра PHUN - ALGODOO

Phun

PHUN - Двухмерная песочница для физиков
(2d physics sandbox)

Игра разработана на Кафедре вычислительных наук Университета Умео (Швеция). Phun позволяет просто и наглядно - в виде флэш анимации - смоделировать и показать различные физические процессы. Например, с помощью всего лишь нескольких кликов мыши можно сконструировать машинку и поставить на нее "моторчик". Затем нажать "Play" и наслаждаться движением созданного своими руками транспортного средства.

Phun 2d physics sandbox  Phun 2d physics sandbox  Phun 2d physics sandbox

Phun - видео:

Phun YouTube video   Phun YouTube video   Phun YouTube video

Скачать игру Phun:

Для Windows:

Phun beta 5.28 installer - exe file (5.3 MB) - рекомендуется для Windows XP и более ранних версий.
Phun beta 5.28 - zip архив  (8.1 MB) - рекомендуется для Windows Vista - распакуйте в папку с правами записи (например, "Мои документы" на рабочем столе)

Для Linux:

Phun beta 5.28 for 32-bit Linux, tgz archive (7.5 MB)
Phun beta 5.28 for 64-bit Linux, tgz archive (7.5 MB)

Для MacOS:

Phun beta 5.28 (12.6 MB) - для Mac OS X 10.4 и выше.
Для установки кликните дважды по скачанному файлу - на рабочем столе появится смонтированный диск. Откройте его и скопируйте папку с Phun в вашу папку с программами (Applications directory).

Phun Beta 5

Начиная с пятой версии Phun имеет встроенную поддержку русского языка. Для его активизации нужно зайти в меню File, затем Change language и выбрать Russian.

Сайт программы: http://www.phunland.com

Готовые сцены можно скачать здесь.

Уроки по работе в Phun: mistakes.ru/phun/lessons

phun

14 января 2009 г. компания Algorix представила коммерческую версию "Phun" - "Algodoo".
Algodoo

Вот видео о программе:


Небольшой урок:

С недавнего времени Алгоду стала бесплатной. Вот ссылки для скачивания:
Скачать Algodoo для Windows
Скачать Algodoo для Mac
Скачать Algodoo для iPad

Algodoo by Algoryx

Комментарии

Аватар пользователя volod

RE: Глушитель

Думаю, самый простой способ - это сделать на конце глушителя невидимую подвижную деталь с приклеенным следом серого цвета и задать время следа 0,1-1 сек.
Если реалистичнее, то со скриптом. Делаем также на конце подвижную деталь на оси с мотором, которая постоянно ударяется о другую с частотой 1-5 раз в секунду. У любой из сталкивающихся деталей в меню скриптов в поле столкновения (onCollide) пишем простенький скрипт создания кругов (см. уроки на этом сайте: Основы скриптинга в Phun и Algodoo), плотность указать меньше, чем у воздуха, чтобы взлетали, слой столкновения кругов не должен совпадать с деталями глушителя (а то будет цепная реакция:) ). Если кружки(дым) не удалять то скоро начнутся тормоза, поэтому надо сделать невидимую рамку-стиратель, слой столновения которой установить как у дыма.
Удалять дым можно и с помощью скриптов, задавая время, контролируя время жизни кругов, но это немного сложнее.

Аватар пользователя DUG

вопрос...

А как задать время жизни объектов?
Расскажите...
меня спрашивают об этом, потому что я сказал, что мастер, а об етом не знаю... =(

Аватар пользователя Skayriver

Я пробовал

Я пробовал через косинус/синус изменять плотность, ибо заметил что объект с 0 плотностью исчезает. Но по непонятной мне причине изменение плотности идёт сперва в минус, причём минуя 0, а потом в плюс до определённого значения и прекращается совсем. Скрипт из окна плотности объекта пропадает (Density := {sin(time)}) Volod, может тебе известен секрет таймера?)))

Аватар пользователя volod

RE: Windows 7

Первое, что приходит в голову - это настроить совместимость с XP, настраивается в свойствах ярлыка программы. Еще может быть проблема с видео-драйверами, и надо попробовать в игре изменить настройки графики.

Аватар пользователя volod

RE: Время жизни объектов

Для самоисчезания объектов у меня получился такой код, вписываем в поле text прямоугольника или texture у круга:
{ step := 0.01;
dens = density;
density = {dens }

для прямоугольника еще можно добавить через точку с запятой строку:
""+density
и тогда на нем будет отображаться уменьшающееся значение плотности. Смысл такой - т.к. все команды заключены в фигурные скобки, то они будут вычисляться не один раз, а постоянно, наверное, со скоростью пересчета сцены ~100 раз в секунду, и каждый раз плотность уменьшается на величину переменной step, т.е. чем step больше, тем быстрее плотность уменьшится до нуля.
Это далеко не лучший вариант, т.к. может замедляться на сложных сценах, когда скорость обновления замедляется. Поэтому можете попробовать привязать ко времени (sim.time). Т.к. переменные используются без "Scene.my." то они не общие для всей сцены, а отдельные для каждого объекта и объекты исчезают независимо друг от друга. Осталось при генерации объектов добавлять им этот код в свойство text или texture. В полях OnCollide или OnLaserHit у меня не получилось, видимо они срабатывают разово, и даже скобки {} не заставляют отрабатывать код циклично.
Еще обнаружил один момент - в коде условия нельзя проверять и присваивать одну и туже переменную, т.е. так не получится:
density = {density
а через промежуточную dens получилось:
dens = density;
density = {dens
поясню - т.к. переменная уменьшаясь может минуя ноль уйти в минус, то проверяется, если меньше нуля, то присвоить ноль.
Надеюсь тут можно так много писать)

Аватар пользователя Гость

Вода

У меня вода прыгает в разные стороны со скоростью света. Что делать?????

Аватар пользователя Skayriver

o_O

Регестрируйтесь в книгу рекордов! ибо разглядеть воду на скорости света!...

Более подробно, поэтапно расскажите.

Аватар пользователя Skayriver

Phun

Как видно из названия и описания, которое к нему прилагается игра представляет собой слабо ограниченую платформу для моделирования чего угодно на основе "Ньютоновской физики". В ней нет задач, и заранее заготовленых решений, понятие интересности игры вы определяете сами. Кончено, если каждый раз строить одно и то же, никакого интереса не возникнет... Но само понятие "игра" зависит только от вас самих!
Удачи, и Have phun)

Аватар пользователя Гость

Искры

У меня вместе с заспауненными обьектами пропадают и "создаватели". Ты у себя пробовал?
Я хочу сделать искры.

Аватар пользователя Skayriver

Отезд

На вопросы отвечать скорее всего не смогу. Потому что уезжаю на обучение в город ОМСК. Пишите в isq 351674271
Пропадать могут по многим причинам, советую проверить объект на скорость вращения (AngVel) если эта скорость превышает определёное число (вроде 9 знаков) то объект пропадёт, а вместе с ним и все, к которым он прикасался.
Баг? О_о Как бы то ни было боле тщательно описывайте проблемы.

Аватар пользователя Skayriver

Управление

Управление настраивается пользователем в контекстном меню. Необходимо выделить объект (ось или полигон) на осях 3 поля. Первые два - это вращение по и против часовой стрелки, третьее - это тормоз. В полигонах управление иное, выбирается в контекстном меню (geometry controller), имеет вид клавиш курсора, или любых аналогичных. Позволяет перемещать объект по игровому миру в 4 направлениях. Также бегунок Controlleracc влияет на скорость этого движения.
Из системы подвижных элементов закреплёных осями можно составить в принципе что угодно, от машин до вертолётов. Конкретное управление зависит от самой системы объектов.

Аватар пользователя Skayriver

Интересный эфект

В бокс, полигон, круг в меню скриптов находим IneriaMultiplier вместо значения "1" вводим "+inf"
Поворачиваем объект горизонтально и краем без зацеплений кладем но что-либо выпирающее. Он не упадёт, где бы ни была точка опоры. Также значения от 1000 заметно влияют на скорость движения вокруг своей оси.
Наёдено в какой-то из сцен.

Аватар пользователя Гость

Интересный эфект

цитата:
"Также значения от 1000 заметно влияют на скорость движения вокруг своей оси"
конец цитаты

но если раскрутить то потом хрен остановишь =)

Аватар пользователя DUG

45634563

кто-нибуть может исправить?:
на лазере:

(e)=>{
    scene.addbox({
        size := [0.2, 0.1];
        color := [1, 0, 0, 1];
        pos := e.pos;
        collideset := 64;
        geomid := 1000;
        text := {
          minus := 1;
          cnt := geomid;
          geomid := {cnt       {"" + geomid}
      }
    })
}

Аватар пользователя Skayriver

Сразу скажу, я отвык от пхуна...

"cnt := geomid" - эта переменная откуда? scene.my.cnt юзай.
" geomid := {cnt В зависимости от того, что тебе надо e.geom.density более правдоподобно
счяс попробую.. гляну, что вообще делает твой скрипт.

Аватар пользователя Skayriver

Напиши подробно

Твой скрипт без контекста вообще бред какой-то, намешал ошибок... Напиши, что ты пытаешься достичь, при каких условиях. Какие переменные даны, а лучше в аську скинь мне сцену твою. 351674271

Аватар пользователя Skayriver

Применение скриптов

Не делайте скрипты просто так, это вам вряд ли поможет научится, ставьте перед собой задачу. И старайтесь подобрать такой скрипт, который наилучшим образом выполнит её.
Вот пример: с помошью скриптов я сделал сцену, в которой я использовал кей-проб от клинича, который высчитывает скорость. По сути это игра для 2 человек http://www.algodoo.com/algobox/details.php?id=45696
Скрипт в этой сцене имитирует нанесение урона, пропорционально скорости меча. Жизни видны по длинне "хвоста". Материал, который уничтожил тебя, подкрасится в жёлтый цвет.

Аватар пользователя Гость

Что делать?

Что делать, у мя даже rad faction gurilla на средних пашет и всё норм, а эта игра даже не даёт нормально нажать на кнопку!

Аватар пользователя Skayriver

Обнови по

В частности дровишки. Поставь с++ последней версии. А если видюха н-видия, то тебе поможет алгудо версии 1.7 и выше.

Аватар пользователя Виктор

Прочее

Что вы все от жизни отстали!!!! PHUN качаете! Я себе давно Algodoo 1.7 БЕСПЛАТНО СКАЧАЛ!!! И Руссификатор откопал!!!!

Аватар пользователя не гость

крестик

как скриптом сделать крестик (крепление) в Algodoo 1.8.5
?

подробнее:
у меня одна штука должна спаунить шарики (основные параметры есть), которые притягиваются к другим вещам (тоже сделано), и в месте "столкновения" спаунится крестик.

Аватар пользователя Skayriver

Joint в точке соприкосновения

Вобще просто заспаунить крестик можно, и это довольно легко. Но он будет прицеплен к фону, и никакой пользы от него не будет.
Скрипт - (e)=>{Scene.addFixjoint({pos:=e.pos;size:=0.1})}
Я колдовал с изменением точки спауна, но даже если крестик появиться на пересечении 2 объектов, он будет закреплён за фоном.
Параметры, отвечающие за объекты (их всегда два) идут парой. Номер объекта и позиция относительно объекта.
Вы сами можете глянуть архитектуру скрипта, сохраните сценку с 2 об. соедините их крестиком. Открываете вашу сценку винраром, достаёте из архива текстовик scene. внимательно исследуйте его. (В новой версии алгудо архитектура немного другая.)

Аватар пользователя Гость

инструменты

У меня версия 5.28, а я на скриншотах видел, что в этой версии есть довольно много инструментов .А у меня на 3 инструмента меньше, где я могу скачать новые инструменты?

Аватар пользователя volod

RE: Помогите

Дополнительные инструменты есть в платной версиии Algodoo, насколько помню, там есть лазер, настройка текстур, опционально несжимаемая вода и сетка экрана. Инструменты хорошие, но не самые главные, а привязку скриптов к лазеру часто можно заменить привязкой к столкновениям объекта на оси-моторе.
Разработчики также профессиональный инструмент делают, можно увидеть по ссылке:
http://www.algoryx.se/agx

Аватар пользователя Skayriver

Вобще есть альтернатива.

AGx - это 3д инструмент, для проектирования. Стоит явно немалых денег, и ресурсов компьютера.
Но есть альтернатива в виде Golems, это тоже 3д инструмент, но бесплатный, всёже компьютер нужен неслабый, в нём меньше инструментов, и "не очень дружелюбный интерфейс".
Впрочем, симуляции вы можете посмотреть сами -> http://www.golemgame.com/
Прям Алгудо в 3д.

Аватар пользователя volod

Golems

Действительно интерефейс Golems - это не Phun)
Так и не понял можно ли двигать и поворачивать с некоторым шагом или придется выравнивать объекты через координаты в свойствах, а тогда придется сначала чертить модель в нескольких проекциях.

Аватар пользователя Next

Вода

У меня вода "прыгает" на ровном месте, т.е на плоскости(земле),и так везде, во всех сценах. Уже везде перелазил, но ни нашёл ответа на вопрос в коментах. Phun версии 5.28. Смотрел всевозможные настройки в Phun'e но про параметры воды ничего нету(если не считать её цвет), как мне исправить эту проблему?

Аватар пользователя volod

вода "прыгает"

Где-то в настройках есть аппаратная поддержка воды, если не ошибаюсь. А вообще от воды толку мало, скорее баловство по началу, т.к. тормозит сильно.

Аватар пользователя Next

воды "прыгает"

там только есть аппаратный обсчёт воды, но ничего из этого мне никак не помогло, по прежнему вода прыгает. Да и объекты начали странно себя вести... Как то более сильнее отпрыгивать хотя никаких параметров я не трогал... Переустановка не помогает...

Аватар пользователя Next

вода

уже не поможет))) я установил Algodoo версии 1.8.1
и всё в порядке!!! Серийник находился на том же сайте что я и скачивал,только вот сайт забыл...

Страницы

Добавить комментарий