Beispiel #1
0
        public bool Save(FlyScene scene)
        {
            try
            {
                string directory = SaveFolder;
                Directory.CreateDirectory(directory);

                string fullPath = Path.Combine(directory, "test.flys");

                using (var stream = new MemoryStream())
                {
                    var context = new BinarySerializationContext(stream);
                    Save(scene, context);

                    stream.Flush();
                    StorageUtilities.CopyToFile(stream, fullPath);
                }

                Console.WriteLine("Saved!");
                return(true);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(false);
            }
        }
Beispiel #2
0
        private void OnOwnerRemoved(object sender, FlyScene scene)
        {
            if (this.body != null)
            {
                scene.PhysicsWorld.RemoveBody(this.body);
                this.body = null;
            }

            this.OnOwnerRemoved(scene);
        }
Beispiel #3
0
        private void Save(FlyScene scene, BinarySerializationContext context)
        {
            context.WriteDefaultHeader();

            context.Write(scene.HalfSize.X);
            context.Write(scene.HalfSize.Y);
            context.Write(scene.EntityCount);

            foreach (IFlyEntity entity in scene.Entities)
            {
                context.WriteObject(entity);
            }
        }
Beispiel #4
0
        protected override void OnAdded(FlyScene scene)
        {
            float f = GetDistance(from);
            float t = GetDistance(to);

            float distance = f + t;
            float minWidth = distance;
            float maxWidth = distance + 6.0f;

            this.joint = JointFactory.CreateSliderJoint(scene.PhysicsWorld, this.from.Physics.Body, this.to.Physics.Body, Xna.Vector2.Zero, Xna.Vector2.Zero, minWidth, maxWidth);

            this.joint.DampingRatio = 1.0f;
            this.joint.Frequency    = 0.25f;
        }
Beispiel #5
0
        private FlyScene Load(BinaryDeserializationContext context)
        {
            context.ReadDefaultHeader(this.GetType());

            Point2 halfSize;

            halfSize.X = context.ReadInt32();
            halfSize.Y = context.ReadInt32();

            FlyScene scene = new FlyScene(halfSize);

            int entityCount = context.ReadInt32();

            for (int i = 0; i < entityCount; ++i)
            {
                var entity = context.ReadObject <FlyEntity>();
                scene.AddEntity(entity);
            }

            return(scene);
        }
Beispiel #6
0
        public SceneGravityApplicator(FlyScene scene)
        {
            Contract.Requires(scene != null);

            this.scene = scene;
        }
Beispiel #7
0
 protected override void OnOwnerRemoved(FlyScene scene)
 {
     this.fixture = null;
 }
Beispiel #8
0
 private void OnOwnerAdded(object sender, FlyScene scene)
 {
     this.GenerateCore();
 }
Beispiel #9
0
 protected virtual void OnOwnerRemoved(FlyScene scene)
 {
 }
Beispiel #10
0
 protected override void OnRemoved(FlyScene scene)
 {
     scene.PhysicsWorld.RemoveJoint(this.joint);
 }
Beispiel #11
0
 private void OnTargetRemoved(object sender, FlyScene e)
 {
     this.RemoveFromScene();
 }
Beispiel #12
0
 protected virtual void OnAdded(FlyScene scene)
 {
 }
Beispiel #13
0
        private void OnSceneLoaded(FlyScene scene)
        {
            var asteroidPusher = new AsteroidPusher(rand);

            asteroidPusher.Push(scene);
        }