This commit is contained in:
Benjamín 2021-09-06 16:03:18 +02:00
parent d8ef457c22
commit a0c7caf727
3 changed files with 13 additions and 12 deletions

@ -93,7 +93,7 @@ class Multiscene(Scene):
subscene.progress() subscene.progress()
def get_i_objects(self): def get_i_objects(self):
i_objects = copy.copy(self.i_objects) i_objects = [[copy.copy(self.i_objects), self.mouse_pos]]
for subscene in self.subscenes: for subscene in self.subscenes:
i_objects += subscene.get_i_objects() i_objects += subscene.get_i_objects()

@ -56,4 +56,4 @@ class Scene(Screen):
pass pass
def get_i_objects(self): def get_i_objects(self):
return self.i_objects return [[self.i_objects, self.mouse_pos]]

@ -18,16 +18,17 @@ class RopeInteractiveDot:
self.position = mouse_pos self.position = mouse_pos
if clicked: if clicked:
for object_ in self.scene.get_i_objects(): for object_batch in self.scene.get_i_objects():
if object_.__class__.__name__ == "Rope": for object_ in object_batch[0]:
for node in object_.nodes: if object_.__class__.__name__ == "Rope":
if node.locked is False: for node in object_.nodes:
if math.sqrt(sum((node.position - self.position) ** 2)) < self.forcefield_range: if node.locked is False:
force_vector = node.position - self.position if math.sqrt(sum((node.position - self.position) ** 2)) < self.forcefield_range:
full_force_vector = (force_vector / math.sqrt(sum(force_vector ** 2))) * self.forcefield_range force_vector = node.position - self.position
force_vector = full_force_vector - force_vector full_force_vector = (force_vector / math.sqrt(sum(force_vector ** 2))) * self.forcefield_range
force_vector /= self.forcefield_range / self.force force_vector = full_force_vector - force_vector
force_vector /= self.forcefield_range / self.force
node.position += force_vector node.position += force_vector