Physicsobject — различия между версиями
Igood (обсуждение | вклад) |
Beletsky (обсуждение | вклад) м (→Свойства элемента:) |
||
(не показаны 34 промежуточные версии 3 участников) | |||
Строка 1: | Строка 1: | ||
− | + | [[Файл:phys_1.jpg|right]] | |
− | |||
− | + | Объект типа '''«Physicsobject»''' необходим для описания объектов в физмире его | |
+ | можно создать выбрав->тип объекта->Game mechanic->Physicsobject. | ||
− | + | Объекты типа '''Physicsobject - обязательно''' помещаются в группу физического мира <br/>[[physicsworld]] как это показано на картинке справа. | |
− | |||
− | |||
='''Свойства элемента:'''= | ='''Свойства элемента:'''= | ||
− | ''' | + | [[Файл:Физика6.PNG|right]] |
− | *'''Статические тела''' — имеют нулевую скорость, нулевую массу, перемещать во вьювере нельзя. | + | |
− | *'''Динамические тела''' — имеют не нулевую скорость, положительную массу, перемещать во вьювере можно. | + | *'''Тип''' — тип физического тела: статическое, кинематическое и динамическое. |
− | *'''Кинематические тела''' — имеют не нулевую скорость, нулевую массу, перемещение определяется по законам кинематики. | + | :*'''Статические тела''' — имеют нулевую скорость, нулевую массу, перемещать во вьювере нельзя. |
+ | :*'''Динамические тела''' — имеют не нулевую скорость, положительную массу, перемещать во вьювере можно. | ||
+ | :*'''Кинематические тела''' — имеют не нулевую скорость, нулевую массу, перемещение определяется по законам кинематики. | ||
− | ''' | + | *'''Плотность''' — плотность тела. Влияет на массу тела. В большинстве игр имеет смысл вычислять массу, учитывая плотность фигур.<br>Это позволяет проверить, имеют ли тела реалистичную массу. Например, в механизме наподобие весов, который требует точные значения масс. |
− | ''' | + | *'''Трение''' — сила трения. По умолчанию стоит 0,3. Чем выше сила трения тем тяжелее воздействовать на него другим телом. Зависит от рода соприкасающийся поверхностей и от величины нагрузки. Результирующее значение вычисляется как среднее геометрическое из значений пары взамодействующих объектов. |
− | ''' | + | *'''Отскок''' — это отношение скорости отскока к скорости падения. При столкновении выбирается большее значение среди пары взаимодействующих объектов. |
− | ''' | + | *'''Линейное демпфирование''' — затухание линейного движения тела, его отскоков. (представляет собой коэффициент от 0 до 1) |
− | ''' | + | *'''Угловое демпфирование''' — затухание вращения тела. (представляет собой коэффициент от 0 до 1) |
− | ''' | + | *'''Масштаб гравитации''' — сила притяжения тела по вертикали. (может быть больше единицы, аналог абсолютной величины вектора) |
По умолчанию стоит 1. Если увеличить масштаб гравитации тело будет падать быстрее.<br> | По умолчанию стоит 1. Если увеличить масштаб гравитации тело будет падать быстрее.<br> | ||
'''Например:''' для того чтобы физические тела не отскакивали друг от друга, но быстро опускались в объект (например мячики падают в емкость), то нужно увеличить линейное демпфирование и масштаб гравитации. | '''Например:''' для того чтобы физические тела не отскакивали друг от друга, но быстро опускались в объект (например мячики падают в емкость), то нужно увеличить линейное демпфирование и масштаб гравитации. | ||
− | ''' | + | *'''Невращаемое''' — если 0 — тело можно вращать, иначе — нет. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | = Пример использования = | |
[[Файл:7 pppp.jpg||400px]] | [[Файл:7 pppp.jpg||400px]] | ||
[[Файл:8 pppp.jpg||400px]] | [[Файл:8 pppp.jpg||400px]] | ||
+ | [[Файл:6_phyz.jpg||250px]] | ||
При попадании мячом по попугаю, попугай начинает кричать. Создаем для попугая машину parrot_1, в которой прописываем состояния: | При попадании мячом по попугаю, попугай начинает кричать. Создаем для попугая машину parrot_1, в которой прописываем состояния: | ||
*2 — спокойный | *2 — спокойный | ||
*4 — начинает кричать | *4 — начинает кричать | ||
− | Создаем статический физ_объект parrot_1, который делаем невидимый (по альфе ставим 0) и задаем положение в месте размещения машины parrot_1. | + | Создаем статический физ_объект parrot_1, который делаем невидимый (по альфе ставим 0) и задаем положение в месте размещения машины parrot_1.<br> |
Создаем динамический физ_объект ball (в данном примере — это мяч) и задаем ему слушатель столкновений. | Создаем динамический физ_объект ball (в данном примере — это мяч) и задаем ему слушатель столкновений. | ||
Строка 51: | Строка 47: | ||
==Общие== | ==Общие== | ||
Физ-объекты могут иметь состояния active и inactive. | Физ-объекты могут иметь состояния active и inactive. | ||
− | *active - это включенное состояние объекта, в котором он является объектом физического мира и взаимодействует с другими объектами | + | *'''active''' - это включенное состояние объекта, в котором он является объектом физического мира и взаимодействует с другими объектами |
− | *inactive - это выключенное состояние объекта, в котором он '''не''' является объектом физического мира и '''не''' взаимодействует с другими объектами | + | *'''inactive''' - это выключенное состояние объекта, в котором он '''не''' является объектом физического мира и '''не''' взаимодействует с другими объектами |
[[Файл:Физика3.PNG]] | [[Файл:Физика3.PNG]] | ||
Строка 67: | Строка 63: | ||
*Задание скорости. Меняется только модуль вектора скорости, направление не меняется. | *Задание скорости. Меняется только модуль вектора скорости, направление не меняется. | ||
:*''st_vel'' - скорость | :*''st_vel'' - скорость | ||
+ | :*''st_vel_max'' - максимальная скорость среди случайных | ||
:*'''velocity''' | :*'''velocity''' | ||
Строка 72: | Строка 69: | ||
:*''st_pos_x'' - координата по X | :*''st_pos_x'' - координата по X | ||
:*''st_pos_y'' - координата по Y | :*''st_pos_y'' - координата по Y | ||
+ | :*''st_pos_r1'' - радиус внутреннего круга в котом случайно размещается объект | ||
+ | :*''st_pos_r2'' - радиус внешнего круга в котом случайно размещается объект | ||
:*'''transform''' | :*'''transform''' | ||
+ | |||
+ | Если необъодимо поместить объект в случайное место в некоторой области, то необходимо задать центральную точку с помощью ''st_pos_x'' и ''st_pos_y'', и радиусы кругов с помощью параметров ''st_pos_r1'' и ''st_pos_r2'', между которыми будет находиться область в которую будет помещена точка. После этого перевести объект в состояние '''transform'''. | ||
+ | |||
+ | Если необходимо передать объекту случайную скорость, то необходимо задать минимальную скорость с помощью параметра ''st_vel'' и максимальную скорость с помощью параметра ''st_vel_max''. После этого перевести объект в состояние '''transform'''. | ||
*Перемещение с заданной скоростью. | *Перемещение с заданной скоростью. | ||
Строка 82: | Строка 85: | ||
*Задание направления вектора скорости | *Задание направления вектора скорости | ||
:*''st_move_phi'' - угол в градусах. Отсчёт от 12 часов на часах. 12 часов - 0 градусов; 3 - 90; 6 - 180 и т.д. | :*''st_move_phi'' - угол в градусах. Отсчёт от 12 часов на часах. 12 часов - 0 градусов; 3 - 90; 6 - 180 и т.д. | ||
+ | :*''st_move_phi_max'' - максимальный из случайных углов в градусах. Если значение присутствует, оно больше 0 и больше ''st_move_phi'', то между ''st_move_phi'' и ''st_move_phi_max'' будет выбран случайный угол. | ||
:*''st_vel'' - скорость | :*''st_vel'' - скорость | ||
:*'''move''' | :*'''move''' | ||
Строка 91: | Строка 95: | ||
=Настройки формы= | =Настройки формы= | ||
− | Физ_объектами могут быть не только прямоугольники. Шейп (Shape) можно задавать полигоном и кругом в Shape editor(Находится в редакторе ресурсов). Но следует помнить, что количество вершин в полигоне должно быть от 3 до 8. Создавать новую шейп-фигуру можно несколькими полигонами. | + | Физ_объектами могут быть не только прямоугольники. Шейп (Shape) можно задавать полигоном и кругом в Shape editor(Находится в редакторе ресурсов).<br> Но следует помнить, что количество вершин в полигоне должно быть от 3 до 8. Создавать новую шейп-фигуру можно несколькими полигонами. |
[[Файл:Физика5.PNG]] | [[Файл:Физика5.PNG]] | ||
+ | |||
+ | = Добавляемые свойства = | ||
+ | |||
+ | [[Файл:phys_2.jpg|right]] | ||
+ | |||
+ | [[Файл:+.png]]'''слушатель столкновений:''' — дает возможность при столкновении с другим физ_объектом перевести какой-то объект (например машину) из одного состояние в другое. | ||
+ | :'''объект''' - Объект типа physicsobject, столкновения с которым слушаются | ||
+ | :'''слушатель''' - Объект типа machine, который реагирует на столкновение | ||
+ | :'''начало''' - Состояние, в которое переводится слушатель при наступлении столкновения | ||
+ | :'''конец''' - Состояние, в которое переводится слушатель в конце столкновения | ||
+ | |||
+ | [[Файл:+.png]]'''нажали на объект:''' изменить состояние объекта | ||
+ | :'''объект''' - Объект, состояние которого нужно изменить | ||
+ | :'''состояние''' - Новое состояние объекта | ||
+ | |||
+ | [[Файл:+.png]]'''нажали на объект:''' изменить свойство объекта | ||
+ | :'''объект''' - Объект, свойство которого нужно изменить | ||
+ | :'''свойство''' - Свойство, которое нужно изменить | ||
+ | :'''значение''' - Новое значение свойства | ||
+ | |||
+ | [[Файл:+.png]]'''отпустили объект:''' изменить состояние объекта | ||
+ | :'''объект''' - Объект, состояние которого нужно изменить | ||
+ | :'''состояние''' - Новое состояние объекта | ||
+ | |||
+ | [[Файл:+.png]]'''отпустили объект:''' изменить свойство объекта | ||
+ | :'''объект''' - Объект, свойство которого нужно изменить | ||
+ | :'''свойство''' - Свойство, которое нужно изменить | ||
+ | :'''значение''' - Новое значение свойства | ||
+ | |||
+ | |||
+ | [[Category:Physicsworld]] |
Текущая версия на 06:29, 22 сентября 2014
Объект типа «Physicsobject» необходим для описания объектов в физмире его можно создать выбрав->тип объекта->Game mechanic->Physicsobject.
Объекты типа Physicsobject - обязательно помещаются в группу физического мира
physicsworld как это показано на картинке справа.
Содержание
Свойства элемента:
- Тип — тип физического тела: статическое, кинематическое и динамическое.
- Статические тела — имеют нулевую скорость, нулевую массу, перемещать во вьювере нельзя.
- Динамические тела — имеют не нулевую скорость, положительную массу, перемещать во вьювере можно.
- Кинематические тела — имеют не нулевую скорость, нулевую массу, перемещение определяется по законам кинематики.
- Плотность — плотность тела. Влияет на массу тела. В большинстве игр имеет смысл вычислять массу, учитывая плотность фигур.
Это позволяет проверить, имеют ли тела реалистичную массу. Например, в механизме наподобие весов, который требует точные значения масс.
- Трение — сила трения. По умолчанию стоит 0,3. Чем выше сила трения тем тяжелее воздействовать на него другим телом. Зависит от рода соприкасающийся поверхностей и от величины нагрузки. Результирующее значение вычисляется как среднее геометрическое из значений пары взамодействующих объектов.
- Отскок — это отношение скорости отскока к скорости падения. При столкновении выбирается большее значение среди пары взаимодействующих объектов.
- Линейное демпфирование — затухание линейного движения тела, его отскоков. (представляет собой коэффициент от 0 до 1)
- Угловое демпфирование — затухание вращения тела. (представляет собой коэффициент от 0 до 1)
- Масштаб гравитации — сила притяжения тела по вертикали. (может быть больше единицы, аналог абсолютной величины вектора)
По умолчанию стоит 1. Если увеличить масштаб гравитации тело будет падать быстрее.
Например: для того чтобы физические тела не отскакивали друг от друга, но быстро опускались в объект (например мячики падают в емкость), то нужно увеличить линейное демпфирование и масштаб гравитации.
- Невращаемое — если 0 — тело можно вращать, иначе — нет.
Пример использования
При попадании мячом по попугаю, попугай начинает кричать. Создаем для попугая машину parrot_1, в которой прописываем состояния:
- 2 — спокойный
- 4 — начинает кричать
Создаем статический физ_объект parrot_1, который делаем невидимый (по альфе ставим 0) и задаем положение в месте размещения машины parrot_1.
Создаем динамический физ_объект ball (в данном примере — это мяч) и задаем ему слушатель столкновений.
Состояния
Ниже приведены общие и специальные состояния которые могут передаваться нашему объекту.
Общие
Физ-объекты могут иметь состояния active и inactive.
- active - это включенное состояние объекта, в котором он является объектом физического мира и взаимодействует с другими объектами
- inactive - это выключенное состояние объекта, в котором он не является объектом физического мира и не взаимодействует с другими объектами
Специальные
Физ-объекты Также имеют специальные параметры и состояния для совершения над ними действий. Будут описаны в виде:
- описание
- параметр который надо задать
- состояние в которое надо перевести физ.объект
- Задание скорости. Меняется только модуль вектора скорости, направление не меняется.
- st_vel - скорость
- st_vel_max - максимальная скорость среди случайных
- velocity
- Мгновенное перемещение(телепортация).
- st_pos_x - координата по X
- st_pos_y - координата по Y
- st_pos_r1 - радиус внутреннего круга в котом случайно размещается объект
- st_pos_r2 - радиус внешнего круга в котом случайно размещается объект
- transform
Если необъодимо поместить объект в случайное место в некоторой области, то необходимо задать центральную точку с помощью st_pos_x и st_pos_y, и радиусы кругов с помощью параметров st_pos_r1 и st_pos_r2, между которыми будет находиться область в которую будет помещена точка. После этого перевести объект в состояние transform.
Если необходимо передать объекту случайную скорость, то необходимо задать минимальную скорость с помощью параметра st_vel и максимальную скорость с помощью параметра st_vel_max. После этого перевести объект в состояние transform.
- Перемещение с заданной скоростью.
- st_pos_x - координата по X
- st_pos_y - координата по Y
- st_vel - скорость
- target
- Задание направления вектора скорости
- st_move_phi - угол в градусах. Отсчёт от 12 часов на часах. 12 часов - 0 градусов; 3 - 90; 6 - 180 и т.д.
- st_move_phi_max - максимальный из случайных углов в градусах. Если значение присутствует, оно больше 0 и больше st_move_phi, то между st_move_phi и st_move_phi_max будет выбран случайный угол.
- st_vel - скорость
- move
менять состояние можно машиной из вне например :
Настройки формы
Физ_объектами могут быть не только прямоугольники. Шейп (Shape) можно задавать полигоном и кругом в Shape editor(Находится в редакторе ресурсов).
Но следует помнить, что количество вершин в полигоне должно быть от 3 до 8. Создавать новую шейп-фигуру можно несколькими полигонами.
Добавляемые свойства
слушатель столкновений: — дает возможность при столкновении с другим физ_объектом перевести какой-то объект (например машину) из одного состояние в другое.
- объект - Объект типа physicsobject, столкновения с которым слушаются
- слушатель - Объект типа machine, который реагирует на столкновение
- начало - Состояние, в которое переводится слушатель при наступлении столкновения
- конец - Состояние, в которое переводится слушатель в конце столкновения
нажали на объект: изменить состояние объекта
- объект - Объект, состояние которого нужно изменить
- состояние - Новое состояние объекта
нажали на объект: изменить свойство объекта
- объект - Объект, свойство которого нужно изменить
- свойство - Свойство, которое нужно изменить
- значение - Новое значение свойства
отпустили объект: изменить состояние объекта
- объект - Объект, состояние которого нужно изменить
- состояние - Новое состояние объекта
отпустили объект: изменить свойство объекта
- объект - Объект, свойство которого нужно изменить
- свойство - Свойство, которое нужно изменить
- значение - Новое значение свойства