private TextureSequence ReadTextureSequence() { TextureSequence textureSequence = new TextureSequence(); textureSequence.TextureFileName = input.ReadString(); textureSequence.IsUseStaticTime = input.ReadBoolean(); textureSequence.IsRepeat = input.ReadBoolean(); textureSequence.IsRandomMode = input.ReadBoolean(); textureSequence.IsFixedFrameMode = input.ReadBoolean(); textureSequence.FrameWidth = input.ReadSingle(); textureSequence.FrameHeight = input.ReadSingle(); textureSequence.StaticInterval = input.ReadSingle(); textureSequence.Count = input.ReadUInt32(); textureSequence.StartIndex = input.ReadUInt32(); // read TimeTable structures. int timeTableCount = input.ReadInt32(); if (timeTableCount > 0) { textureSequence.TimeTable = new List <float>(); for (int i = 0; i < timeTableCount; i++) { textureSequence.TimeTable.Add(input.ReadSingle()); } } return(textureSequence); }
/// <summary> /// Constructor. /// </summary> /// <param name="resourcePath">texture resource path</param> /// <param name="info">particle information structure</param> /// <param name="textureSequence">texture sequence class</param> public Particle(string resourcePath, ParticleInfo info, TextureSequence textureSequence) : base() { if (String.IsNullOrEmpty(resourcePath)) throw new ArgumentNullException("resourcePath"); if (info == null) throw new ArgumentNullException("info"); this.sequenceInfo = info; this.textureSequence = textureSequence; this.resourcePath = resourcePath; // Create particle's scene root this.sceneRoot = new GameSceneNode(); this.sceneRoot.Name = "Particle Scene Root"; AddChild(this.sceneRoot); Create(); }