【求助】怎样保存塔防游戏的进度数据?

我正在做塔防游戏,现在碰到一个技术上的难题,就是用户完游戏玩到中途时要暂停游戏,以后有空的时候继续在上次暂停点玩下去。
我游戏的架构是这样的
所有敌人都在一层(layerA)中,每个敌人有他的位置,行走的方向,行走的路径,还有他的状态,生命值等
所有的塔都在一层(layerB)中,每个塔有他的位置,正在攻击的敌人,有个DelayTime的Action执行下一次发射子弹的时间。
所有的子弹都在一层(layerC)中,每个子弹都正在执行MoveTo的Action飞向正在攻击的敌人,不同的子弹有不同的速度等。(子弹一开始就执行一个计算好的MoveTo(运动的时间 及目标位置)动作,这些动作数据执行到中途时怎样保存,下次恢复时怎样恢复呢?)

请问怎样的思路去保存这些数据才能比较好的恢复暂停时的游戏数据呢。
感觉无从下手呀。

请求有游戏暂停数据保存与恢复思路的大侠指点一下。

注意每个敌人及子弹都在移动执行moveto的动作中
敌人,塔,子弹都在不同的层中,并没有混杂在一起

之前学习时做过一个塔防,数据存以dictionary的形式存在plist表里,看楼主的需求应该可以实现。子弹的话可以记录子弹的位置和攻击的目标,恢复时让子弹在该位置以之前的速度飞向目标就行了。另外我觉得如果子弹速度足够快的话完全可以不用考虑子弹的恢复,这点误差应该时可以接受的。