Physicsobject — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Объект «Physicsobject» («Физ_объект»))
м (Свойства элемента:)
 
(не показано 39 промежуточных версий 3 участников)
Строка 1: Строка 1:
= '''Объект «Physicsobject» («Физ_объект»)''' =
+
[[Файл:phys_1.jpg|right]]
Необходим для описания объектов в физмире. <br>
 
Объект типа '''«Physicsobject»''' можно создать выбрав > тип объекта > Game mechanic > Physicsobject.<br>
 
Объекты типа '''«Physicsobject» - обязательно''' помещаются в группу физического мира «рhysicsworld».<br>
 
  
[[Файл:Физика2.PNG|150px]]
+
Объект типа '''«Physicsobject»''' необходим для описания объектов в физмире его
[[Файл:Физика6.PNG|150px]]
+
можно создать выбрав->тип объекта->Game mechanic->Physicsobject.
 +
 
 +
Объекты типа '''Physicsobject - обязательно''' помещаются в группу физического мира <br/>[[physicsworld]] как это показано на картинке справа.
  
 
='''Свойства элемента:'''=
 
='''Свойства элемента:'''=
  
[[Файл:7 pppp.jpg||400px|right]]
+
[[Файл:Физика6.PNG|right]]
[[Файл:8 pppp.jpg||400px|right]]
 
[[Файл:6_phyz.jpg||300px|right]]
 
  
'''1) Тип''' — тип физического тела: статическое, кинематическое и динамическое.
+
*'''Тип''' — тип физического тела: статическое, кинематическое и динамическое.
*'''Статические тела''' — имеют нулевую скорость, нулевую массу, перемещать во вьювере нельзя.  
+
:*'''Статические тела''' — имеют нулевую скорость, нулевую массу, перемещать во вьювере нельзя.  
*'''Динамические тела''' — имеют не нулевую скорость, положительную массу, перемещать во вьювере можно.  
+
:*'''Динамические тела''' — имеют не нулевую скорость, положительную массу, перемещать во вьювере можно.  
*'''Кинематические тела''' — имеют не нулевую скорость, нулевую массу,  перемещение определяется по законам кинематики.  
+
:*'''Кинематические тела''' — имеют не нулевую скорость, нулевую массу,  перемещение определяется по законам кинематики.  
  
'''2) Плотность''' — плотность тела. Влияет на массу тела. В большинстве игр имеет смысл вычислять массу, учитывая плотность фигур.<br>Это позволяет проверить, имеют ли тела реалистичную массу. Например, в механизме наподобие весов, который требует точные значения масс.
+
*'''Плотность''' — плотность тела. Влияет на массу тела. В большинстве игр имеет смысл вычислять массу, учитывая плотность фигур.<br>Это позволяет проверить, имеют ли тела реалистичную массу. Например, в механизме наподобие весов, который требует точные значения масс.
  
'''3) Трение''' — сила трения. По умолчанию стоит 0,3. Чем выше сила трения тем тяжелее воздействовать на него другим телом. Зависит от рода соприкасающийся поверхностей и от величины нагрузки.
+
*'''Трение''' — сила трения. По умолчанию стоит 0,3. Чем выше сила трения тем тяжелее воздействовать на него другим телом. Зависит от рода соприкасающийся поверхностей и от величины нагрузки. Результирующее значение вычисляется как среднее геометрическое из значений пары взамодействующих объектов.
  
'''4) Отскок''' — это отношение скорости отскока к скорости падения.
+
*'''Отскок''' — это отношение скорости отскока к скорости падения. При столкновении выбирается большее значение среди пары взаимодействующих объектов.
  
'''5) Линейное демпфирование''' — затухание линейного движения тела, его отскоков.
+
*'''Линейное демпфирование''' — затухание линейного движения тела, его отскоков. (представляет собой коэффициент от 0 до 1)
  
'''6) Угловое демпфирование''' — затухание вращения тела.
+
*'''Угловое демпфирование''' — затухание вращения тела. (представляет собой коэффициент от 0 до 1)
  
'''7) Масштаб гравитации''' — сила притяжения тела по вертикали.  
+
*'''Масштаб гравитации''' — сила притяжения тела по вертикали. (может быть больше единицы, аналог абсолютной величины вектора)
 
По умолчанию стоит 1. Если увеличить  масштаб гравитации тело будет падать быстрее.<br>
 
По умолчанию стоит 1. Если увеличить  масштаб гравитации тело будет падать быстрее.<br>
 
'''Например:''' для того чтобы физические тела не отскакивали друг от друга, но быстро опускались в объект (например мячики падают в емкость), то нужно увеличить линейное демпфирование и масштаб гравитации.
 
'''Например:''' для того чтобы физические тела не отскакивали друг от друга, но быстро опускались в объект (например мячики падают в емкость), то нужно увеличить линейное демпфирование и масштаб гравитации.
  
'''8) Невращаемое''' — если 0 — тело можно вращать, иначе — нет.
+
*'''Невращаемое''' — если 0 — тело можно вращать, иначе — нет.
 +
 
 +
= Пример использования =
  
'''9) Слушатель столкновений''' — дает возможность при соприкасании с другим физ_объектом перевести какой-то объект (например машину) из одного состояние в другое.  
+
[[Файл:7 pppp.jpg||400px]]
'''Задается:''' 1) Выбираем два физ_объекта, которые будут сталкиваться.
+
[[Файл:8 pppp.jpg||400px]]
2) Выбираем один из них, вызываем слушатель столкновений (правая кнопка мыши по свойствам физ_объекта).
+
[[Файл:6_phyz.jpg||250px]]
3) В параметрах указываем объект (физ_объект с которым произойдет столкновение), слушатель — объект, состояние которого измениться на момент столкновения, начало — состояние, в которое  переводиться слушатель на момент столкновения, конец - состояние, в которое переводится слушатель в конце столкновения.
 
  
Например: при попадании мячом по попугаю, попугай начинает кричать. Создаем для попугая машину parrot_1,  в которой прописываем состояния:  
+
При попадании мячом по попугаю, попугай начинает кричать. Создаем для попугая машину parrot_1,  в которой прописываем состояния:  
2 — спокойный, 4 — начинает кричать. Создаем статический физ_объект parrot_1, который делаем невидимый (по альфе ставим 0) и задаем положение в месте размещения машины  parrot_1.
+
*2 — спокойный
 +
*4 — начинает кричать
 +
Создаем статический физ_объект parrot_1, который делаем невидимый (по альфе ставим 0) и задаем положение в месте размещения машины  parrot_1.<br>
 
Создаем динамический физ_объект  ball (в данном примере — это мяч) и задаем ему слушатель столкновений.
 
Создаем динамический физ_объект  ball (в данном примере — это мяч) и задаем ему слушатель столкновений.
  
Строка 47: Строка 47:
 
==Общие==
 
==Общие==
 
Физ-объекты могут иметь состояния active и inactive.
 
Физ-объекты могут иметь состояния active и inactive.
*active - это включенное состояние объекта, в котором он является объектом физического мира и взаимодействует с другими объектами
+
*'''active''' - это включенное состояние объекта, в котором он является объектом физического мира и взаимодействует с другими объектами
*inactive - это выключенное состояние объекта, в котором он '''не''' является объектом физического мира и '''не''' взаимодействует с другими объектами
+
*'''inactive''' - это выключенное состояние объекта, в котором он '''не''' является объектом физического мира и '''не''' взаимодействует с другими объектами
  
 
[[Файл:Физика3.PNG]]
 
[[Файл:Физика3.PNG]]
Строка 63: Строка 63:
 
*Задание скорости. Меняется только модуль вектора скорости, направление не меняется.
 
*Задание скорости. Меняется только модуль вектора скорости, направление не меняется.
 
:*''st_vel'' - скорость
 
:*''st_vel'' - скорость
 +
:*''st_vel_max'' - максимальная скорость среди случайных
 
:*'''velocity'''
 
:*'''velocity'''
  
Строка 68: Строка 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'''.
  
 
*Перемещение с заданной скоростью.
 
*Перемещение с заданной скоростью.
Строка 78: Строка 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'''
Строка 87: Строка 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

Phys 1.jpg

Объект типа «Physicsobject» необходим для описания объектов в физмире его можно создать выбрав->тип объекта->Game mechanic->Physicsobject.

Объекты типа Physicsobject - обязательно помещаются в группу физического мира 
physicsworld как это показано на картинке справа.

Свойства элемента:

Физика6.PNG
  • Тип — тип физического тела: статическое, кинематическое и динамическое.
  • Статические тела — имеют нулевую скорость, нулевую массу, перемещать во вьювере нельзя.
  • Динамические тела — имеют не нулевую скорость, положительную массу, перемещать во вьювере можно.
  • Кинематические тела — имеют не нулевую скорость, нулевую массу, перемещение определяется по законам кинематики.
  • Плотность — плотность тела. Влияет на массу тела. В большинстве игр имеет смысл вычислять массу, учитывая плотность фигур.
    Это позволяет проверить, имеют ли тела реалистичную массу. Например, в механизме наподобие весов, который требует точные значения масс.
  • Трение — сила трения. По умолчанию стоит 0,3. Чем выше сила трения тем тяжелее воздействовать на него другим телом. Зависит от рода соприкасающийся поверхностей и от величины нагрузки. Результирующее значение вычисляется как среднее геометрическое из значений пары взамодействующих объектов.
  • Отскок — это отношение скорости отскока к скорости падения. При столкновении выбирается большее значение среди пары взаимодействующих объектов.
  • Линейное демпфирование — затухание линейного движения тела, его отскоков. (представляет собой коэффициент от 0 до 1)
  • Угловое демпфирование — затухание вращения тела. (представляет собой коэффициент от 0 до 1)
  • Масштаб гравитации — сила притяжения тела по вертикали. (может быть больше единицы, аналог абсолютной величины вектора)

По умолчанию стоит 1. Если увеличить масштаб гравитации тело будет падать быстрее.
Например: для того чтобы физические тела не отскакивали друг от друга, но быстро опускались в объект (например мячики падают в емкость), то нужно увеличить линейное демпфирование и масштаб гравитации.

  • Невращаемое — если 0 — тело можно вращать, иначе — нет.

Пример использования

7 pppp.jpg 8 pppp.jpg 6 phyz.jpg

При попадании мячом по попугаю, попугай начинает кричать. Создаем для попугая машину parrot_1, в которой прописываем состояния:

  • 2 — спокойный
  • 4 — начинает кричать

Создаем статический физ_объект parrot_1, который делаем невидимый (по альфе ставим 0) и задаем положение в месте размещения машины parrot_1.
Создаем динамический физ_объект ball (в данном примере — это мяч) и задаем ему слушатель столкновений.

Состояния

Ниже приведены общие и специальные состояния которые могут передаваться нашему объекту.

Общие

Физ-объекты могут иметь состояния active и inactive.

  • active - это включенное состояние объекта, в котором он является объектом физического мира и взаимодействует с другими объектами
  • inactive - это выключенное состояние объекта, в котором он не является объектом физического мира и не взаимодействует с другими объектами

Физика3.PNG

Специальные

Физ-объекты Также имеют специальные параметры и состояния для совершения над ними действий. Будут описаны в виде:

  • описание
  • параметр который надо задать
  • состояние в которое надо перевести физ.объект
  • Задание скорости. Меняется только модуль вектора скорости, направление не меняется.
  • 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

менять состояние можно машиной из вне например :

Физика4.PNG

Настройки формы

Физ_объектами могут быть не только прямоугольники. Шейп (Shape) можно задавать полигоном и кругом в Shape editor(Находится в редакторе ресурсов).
Но следует помнить, что количество вершин в полигоне должно быть от 3 до 8. Создавать новую шейп-фигуру можно несколькими полигонами.

Физика5.PNG

Добавляемые свойства

Phys 2.jpg

+.pngслушатель столкновений: — дает возможность при столкновении с другим физ_объектом перевести какой-то объект (например машину) из одного состояние в другое.

объект - Объект типа physicsobject, столкновения с которым слушаются
слушатель - Объект типа machine, который реагирует на столкновение
начало - Состояние, в которое переводится слушатель при наступлении столкновения
конец - Состояние, в которое переводится слушатель в конце столкновения

+.pngнажали на объект: изменить состояние объекта

объект - Объект, состояние которого нужно изменить
состояние - Новое состояние объекта

+.pngнажали на объект: изменить свойство объекта

объект - Объект, свойство которого нужно изменить
свойство - Свойство, которое нужно изменить
значение - Новое значение свойства

+.pngотпустили объект: изменить состояние объекта

объект - Объект, состояние которого нужно изменить
состояние - Новое состояние объекта

+.pngотпустили объект: изменить свойство объекта

объект - Объект, свойство которого нужно изменить
свойство - Свойство, которое нужно изменить
значение - Новое значение свойства