0 votes

I need Path2D visible and modifiable in Play Mode. Here is the script that works perfectly well:

func _draw():

if curve.get_point_count() > 0:
    draw_polyline(curve.get_baked_points(), Color.white, 2)
for p in curve.get_point_count():
    var pos = curve.get_point_position(p) 
    draw_circle(pos, 5, Color.white)
if (currentTool == tools.SELECT or currentTool == tools.MOVE):   
    draw_circle(curve.get_point_position(index), 8 , Color.red)

So far, so good. But when I add bezier in/out handles under _draw() function it returns error:

    draw_circle(curve.get_point_in(), 10 , Color.orange)
    draw_circle(curve.get_point_out(), 10 , Color.orange)
    update()

Apparently, I'm doing something wrong, do you have any idea what should be done for it to draw handles for me? What should be added and how? Highly appreciate your time and attention!

asked Jul 18 in Engine by Suleymanov (55 points)

1 Answer

+1 vote
Best answer

But when I add bezier in/out handles [...] it returns error

If Godot returns an error, you...

  1. ... read it & try to understand the problem yourself and...
  2. ... if you don't understand it, you post it here along with your question

Otherwise I have to run your code myself just to see the error message... Which in this case clearly states the problem: Too few arguments for "get_point_in()" call. Expected at least 1. So all you have to do is provide an argument, specifying the id of the point you want to draw the in/out-handles for, e.g. for the first point it's:

   draw_circle(curve.get_point_in(0), 10 , Color.orange)
   draw_circle(curve.get_point_out(0), 10 , Color.orange)
answered Jul 18 by njamster (9,522 points)
selected Jul 18 by Suleymanov

Sorry, you had to run the code to get the error, next time I ask questions I'll attach the error message. And thank you for your help! It worked, and I replaced it with p to meet my needs. Highly appreciated!

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.