| 
				
				Толчок
				 | 
 | 
| Handsome_Phil | Дата: Четверг, 20 Марта 2014, 13:45 | Сообщение # 1 |  
 
был не раз 
Сейчас нет на сайте 
 
 | Как сделать толчок для платформера, от поверхности или в воздухе в противоположном направление мышке?   Голову сломал) Нечего не придумал   Точнее даже не толчок, а подобие реактивного ранца))
 
 Сообщение отредактировал Handsome_Phil - Четверг, 20 Марта 2014, 14:04  |  
| 
 | 
 |    | 
| Vicka | Дата: Четверг, 20 Марта 2014, 15:39 | Сообщение # 2 |  
 
Another ART 
Сейчас нет на сайте 
 
 | На удивление просто)   реально в пару кликов) 
     
   ранеЦДобавлено (20.03.2014, 15:39) --------------------------------------------- К стати партиклы по желанию) Они там для красоты) 
 
  
 |  
| 
 | 
 |    | 
| Sanches | Дата: Четверг, 20 Марта 2014, 16:12 | Сообщение # 3 |  
| 
 участник 
Сейчас нет на сайте 
 
 | Handsome_Phil, если у героя поведение Platform, то нужно изменять скорость при нажатии мышки: у героя в действиях для поведения Platform выбираешь Set X component of motion или Set Y component of motion.   Hero[Platform].VectorX+cos(Angle(MouseX, MouseY, Hero.X, Hero.Y))*Timedelta*100 - скорость по Х   Hero[Platform].VectorY+sin(Angle(MouseX, MouseY, Hero.X, Hero.Y))*Timedelta*100 - скорость по Y   Hero - имя твоего спрайта. В конце стоит 100 - это сила толчка. Пробуй изменять её, пока не добьёшься нужного эффекта.
 
 Сообщение отредактировал Sanches - Четверг, 20 Марта 2014, 18:39  |  
| 
 | 
 |    | 
| Handsome_Phil | Дата: Четверг, 20 Марта 2014, 16:21 | Сообщение # 4 |  
 
был не раз 
Сейчас нет на сайте 
 
 | Sanches, Вроде это для одной оси, а мне надо по направлению)   Neia, Спасибо)
 |  
| 
 | 
 |    | 
| Sanches | Дата: Четверг, 20 Марта 2014, 18:40 | Сообщение # 5 |  
| 
 участник 
Сейчас нет на сайте 
 
 | Handsome_Phil, извини, во втором выражении вместо VectorX пиши VectorY и сos замени на sin. Исправил сообщение, теперь всё работает по обеим осям.
 |  
| 
 | 
 |    | 
| Handsome_Phil | Дата: Пятница, 21 Марта 2014, 12:16 | Сообщение # 6 |  
 
был не раз 
Сейчас нет на сайте 
 
 | Sanches, Оу) Теперь здорово получается Добавлено (21.03.2014, 12:16) --------------------------------------------- Sanches, А как ты до этого догадался? Или где прочитал, просто не могу понять почему нужно использовать именно синусоид и косинусоид и всё остальное) 
 |  
| 
 | 
 |    | 
| Lasmelan | Дата: Пятница, 21 Марта 2014, 14:27 | Сообщение # 7 |  
 
Construct 2 & Classic 
Сейчас нет на сайте 
 
 | Neia, а нельзя частицам задавать угол спрайта4? Почему с дополнительным спрайтом?   А, или частицы нельзя повернуть к объекту, только задать угол...
  Мое портфолио:
 
 Сообщение отредактировал Lasmelan - Пятница, 21 Марта 2014, 14:33  |  
| 
 | 
 |    | 
| Sanches | Дата: Суббота, 22 Марта 2014, 17:24 | Сообщение # 8 |  
| 
 участник 
Сейчас нет на сайте 
 
 | Handsome_Phil, тут всё просто.   Синус и косинус позволяют получить проекции реактивной силы на оси Y и Х соответственно. Выражение Angle(x1, y1, x2, y2) получает угол между точками 1 и 2, это и есть угол действия силы реактивного ранца. Найдя проекции на обе оси имеем полное право прибавить к текущей скорости по каждой оси нашу проекцию ускорения. И домножить на Timedelta, чтобы сила толчка не зависела от FPS.   Это вроде бы есть в учебниках физики 8-9 класса, не помню точно. Ну и геометрия иногда пригождается. 
   Lasmelan, в любом случае можно получить этот угол между объектами, см. выше как.
 
 Сообщение отредактировал Sanches - Суббота, 22 Марта 2014, 17:25  |  
| 
 | 
 |    |