Godot Version
Godot 4.3
Question
Why is this happening? Currently attempting to make a slice mesh with intersect_ray, and stepping through the polygon creation shows that it should be working perfectly, but for whatever reason, its having issues. Don’t hate my on code too hard, I’m not really an avid python guy, way more used to c++. Also, not quite so related, but is there a better way of spawning in new things?
var space_state = get_world_2d().direct_space_state
var arrow = get_node("Arrow/Node2D") as Node2D
var query = PhysicsRayQueryParameters2D.create(arrow.global_position, get_global_mouse_position(), 7, [self, arrow])
var traceline1 = space_state.intersect_ray(query)
query.set("from",query.to)
query.set("to",traceline1.get("position"))
query.set("mask",4)
var traceline2 = space_state.intersect_ray(query)
if traceline1.get("collider") is not CharacterBody2D or traceline1.get("collider") != traceline2.get("collider"):
return
if traceline1 and traceline2:
var enemy = traceline1.get("collider") as CharacterBody2D
enemy.Damage(5)
var start = traceline1.get("position") as Vector2
var end = traceline2.get("position") as Vector2
var shape = enemy.get_node("bounds") as CollisionPolygon2D
var pos1 = shape.to_local(start)
var pos2 = shape.to_local(end)
var offset = Vector2(0.01,0.01)
var perfect = []
var shape1 = []
var shape2 = []
for vertx in shape.polygon:
var res = start.cross(vertx*shape.global_transform)
if res < 0:
print("This is going in shape1:", vertx)
shape1.append(vertx)
elif res > 0:
print("This is going in shape2:", vertx)
shape2.append(vertx)
else:
print("Magic:", vertx)
perfect.append(vertx)
shape1.append_array([pos1 + offset,pos2 + offset])
shape2.append_array([pos1 - offset,pos2 - offset])
var yippee = enemy.duplicate()
yippee.Damage(5)
yippee.name = enemy.name + str(g_Root.get_child_count())
var bpoly = yippee.get_node("bounds")
bpoly.polygon.clear()
bpoly.polygon = shape2
yippee.get_node("Texture").polygon = shape2
get_parent().add_child(yippee)
enemy.update_polygon(shape1)# all this does is set the polygon of target characterbody2d polygon child
Here is what it creates with Debug: Visible Collisions
enabled.