Как сделать так, чтобы объект в Scratch имел горизонтальный импульс, когда вы его перетаскиваете?

#mit-scratch

Вопрос:

Я пытаюсь реализовать это в Physica, моем физическом движке, основанном на царапинах. Я попытался добавить его, и шар вышел из строя (вообще не мог двигаться по оси x). Кто-нибудь знает, как это сделать?

Комментарии:

1. Вы никогда ничего не назначаете Xv, и в функции «Касание» вы никогда ничего не делаете с осью X. Я не думаю, что это такой же сбой, как отсутствие функциональности.

Ответ №1:

Если это физический движок, то каждый объект должен иметь добавленные переменные для скорости, а затем вы управляете скоростью:

Чтобы изменить скорость:

 When ... (whenever your drag release is)
  set Vx to 10
 

в этом примере есть функция перетаскивания:
https://en.scratch-wiki.info/wiki/Draggable_Sprite_Feature

В физическом движке скорость постоянно перемещает ваш объект:

 When green flag
forever
  add Vx to x
  add Vy to y
 

Комментарии:

1. Да, но мне нужно знать, как почувствовать высвобождение сопротивления.

2. Пример перетаскивания на скретч-вики: en.scratch-wiki.info/wiki/Draggable_Sprite_Feature

Ответ №2:

@boisvert в значительной степени ответил на ваш вопрос. Но если вы хотите ощутить освобождение от перетаскивания, используйте этот код:

 when green flag
set drag mode to draggable
forever
    wait until touching mouse pointer and mouse down
    wait until not mouse down
    point toward mouse pointer
    set V to distance to mouse pointer * 2
 

наряду с этим:

 when green flag
forever
    set V to V*0.9
    move V steps
    if on edge, bounce
 

Это не самый совершенный код, но он будет работать

Пример: https://scratch.mit.edu/projects/558479500/