def testCanSerializeAndDeserialize(self): """testCanSerializeAndDeserialize: should be able to store and restore a physics based object""" a = serge.actor.Actor('test', 'test') a.visual = serge.blocks.visualblocks.Circle(40, (0,0,0,0)) a.setPhysical(serge.physical.PhysicalConditions(mass=1.0, radius=1.0, velocity=(1.0, 0.0), update_angle=True, visual_size=serge.geometry.CIRCLE)) a.moveTo(0,0) self.w.addActor(a) self.w.updateWorld(1000.0) # # Serialize and deserialize world = serge.serialize.Serializable.fromString(self.w.asString()) world.updateWorld(1000.0) actor = world.findActorByName('test') self.assertAlmostEqual(2.0, actor.x) self.assertEqual(True, actor.getPhysical().update_angle) self.assertEqual(serge.geometry.CIRCLE, actor.getPhysical().visual_size) self.assertEqual(40, actor.getPhysical().radius)
def editActor(self, path, column, new_text): """Edit the actor in the list view""" row = int(path) world = self.engine.getCurrentWorld() actor = world.findActorByName(self.view_actors.model[path][1]) world.removeActor(actor) data = self.view_actors.model[row] if column in (4, 5): data[column] = int(new_text) else: data[column] = new_text tag, name, sprite, layer, x, y = data new_actor = serge.actor.Actor(tag, name) if sprite: new_actor.setSpriteName(sprite) if layer: new_actor.setLayerName(layer) new_actor.moveTo(x, y) world.addActor(new_actor) self.view_actors.model[row] = data