Как поворачивать и растягивать объект до курсора мыши.

1

Tagged

Attached Files

The following files have been attached to this tutorial:

.capx

rotate-resize.capx

Download now 172.13 KB

Stats

2,058 visits, 2,635 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Всем привет. Я хотел показать Вам, как создать объект, который автоматически меняет угол поворота и свою длину и тянется к курсору.

Необходимо выполнить следующие действия:

1. Создайте спрайт и назовите его (я назвал свой "о"). Покрасьте его зеленым (Можно и не зеленым)

2. Добавьте в проект объект типа Mouse.

3. Хорошо. Давайте начнем писать код.

Перейдите во вкладку EventSheet и создайте 4 глобальных переменных типа number (число): "a", "b", "c" "ang", которые будут означать стороны треугольника и угол соответственно."c" зависит от положения мыши по оси X, "b" — соответственно по оси Y-axis, "a" является гипотенузой треугольника, а "ang", как Вы могли догадаться, является углом в этом треугольнике.

4.Создайте эвент System -> Every tick и добавьте следующие действия (System -> Set value):

a = sqrt ((o.x-mouse.x) ^ 2 + (o.y-mouse.y) ^ 2)

b = sqrt ((o.y-mouse.y) ^ 2)

c = sqrt ((o.x-mouse.x) ^ 2)

также установим длину нашего спрайта:

o.set size = (sqrt (b ^ 2 + c ^ 2) -10, 5)

Высота "o" в нашем случае равна 5.

5. добавьте следующие команды:

System -> Compare Two Values: mouse.y> = o.y

System -> Compare Two Values: mouse.x> = o.x

У этих эвентов добавьте следующее действие:

ang = (asin (b / (a)))

Добавим еще немного команд:

System -> Compare Two Values: mouse.y <= o.y

System -> Compare Two Values: mouse.x> = o.x

Действия:

ang = 360- (asin (b / (a)))

Еще эвенты:

System -> Compare Two Values: mouse.y <= o.y

System -> Compare Two Values: mouse.x <= o.x

У них действия:

ang = -180+ (asin (b / (a)))

И наконец:

System -> Compare Two Values: mouse.y> = o.y

System -> Compare Two Values: mouse.x <= o.x

И соответственно действие: ang = -180- (asin (b / (a)))

Что ж, это всё, что я хотел Вам показать. Результат должен выглядеть как на изображении:

Код должен выглядеть так:

Спасибо всем!

.CAPX

rotate-resize.capx

Download now 172.13 KB
  • 0 Comments

  • Order by
Want to leave a comment? Login or Register an account!