draw 方法使用的是 CanvasItem 的坐标系统,会跟着 CanvasItem 的 transform 而变换(简单来说就是 local transform)。当然,也有像是draw_set_transform()等方法来自定义 transform。 使用draw_line(),draw_rect()等方法的时候,注意如果宽度是奇数,那么线的位置应该移动 0.5 来保持中心,如下图: 如果从 (1,0) ...
首先,先定义变量 export var line_color: Color export var line_thickness: int = 1 export:其实没有什么作用,只是让它可以映射到Inspector里,方便设置值 line_color:颜色 line_thickness:粗细。单位是像素 接着,添加_draw函数,用于画线 func _draw(): for x in range(grid_size.x): var start_point: Ve...
加上 center 就是点的实际位置了。 拿到33 个点的实际位置后,我们只需要在每个点之间draw_line()画线就行了。这就是第二个 for 循环做的事情。 然后,您只需要在_draw()里调用这个方法就行了。 如果想变成实心,把 draw_line 改成 draw_polygon 即可。 3.6.5 动态自定义绘图 我们现在学会了画静态图,那么...
draw_polyline() :绘制相互连接的线段.points参数长度需要大于2以绘制线段,points中的点回依次连接; draw_multiline() :绘制多条线段.points参数长度需要大于2,需要长度%2==0,因为需要每两个点互相连接; 上面这两个方法只能写在 _draw()这个虚方法中. 想进行绘制的时候调用queue_redraw()方法加入重绘队列. 还有...
想用godot 实现上图的这种功能,吧里有大佬有思路吗,现在只只知道line2d可以画线,但是,怎么屏幕点击选中和移动,没有什么思路 hester灬 小吧主 8 这个可以用_draw,相当于canvas直接画,点击和移动都需要自己写,比较偏底层了,比如点击的坐标点在线的矩形范围内就选中,当然选中这个操作也是需要自己画边框的,相当于要自...
extends ColorRectfunc_draw():#varwinSize=get_viewport_rect().sizevarwinSize=OS.window_sizedraw_rect(Rect2(3,3,winSize.x-6,winSize.y-6),Color("#aaaaaa"),false)draw_line(Vector2(winSize.x/2,0),Vector2(winSize.x/2,winSize.y),Color("#ff0000"))draw_line(Vector2(0,winSize.y/...
所以你可以通过Curve2D.get_baked_points()获取包含点的数组并赋值给Line2D的points,不过Line2D本质上是通过引擎内置的渲染api绘制线段,所以也可以两个节点都不用,直接在继承自CanvasItem的节点脚本中添加@tool并@export一个Curve2D,然后通过覆写_draw函数并调用darw_xxx绘制图形,嘴的话感觉可以直接draw_arc绘制一条...
想用line2d画白色的虚线,给它设置了白色的圆点作为texture,再设置为tile,结果圆点好多都变形了 ANTlQUATED GDScript 5 感觉可以直接用2d节点的_draw函数来画圆形,因为line2d的uv坐标只能自动生成就会在转折的地方扭曲 易拾棋 物理系统 6 刚刷到一个曲线转虚线的 b站JACKADUX分享的https://github.com/JACKADUX/...
}privatevoid_on_Line_draw() { DrawCircle(Point,2, color); } } 圆形上运动 usingGodot;usingSystem;publicclassCircle:Node2D{privateVector2 start =newVector2(200,200);privateVector2 current =newVector2(300,200); [Export]//Pixel/spublicfloatv =100;//radius Pixelprivatefloatr =100;//radian...
big dashed line length 119 big dashed line length 120 Below is shown lengths from 1 to 200 Steps to reproduce Run this lines to draw dashed lines: for i in range(0,200,2): self.draw_dashed_line(topleft + Vector2(0, i), topleft + Vector2(i, i), Color(1,1,1,1), 1, 10)...