private static IEnumerable <SdnFileEntry> LoadAssets(Spriter spriter, string rootFolder) { for (int i = 0; i < spriter.Folders.Length; ++i) { SpriterFolder folder = spriter.Folders[i]; for (int j = 0; j < folder.Files.Length; ++j) { SpriterFile file = folder.Files[j]; string path = rootFolder; path += "/"; path += file.Name; SdnFileEntry entry = new SdnFileEntry { FolderId = folder.Id, FileId = file.Id }; if (file.Type == SpriterFileType.Sound) { entry.Sound = ContentLoader.Load <AudioClip>(path); } else { entry.Sprite = ContentLoader.Load <Sprite>(path); } yield return(entry); } } }
public override float GetRadius() { if (_spriterPartFile == null) { _spriterPartFile = FindSpriterFile(_spritePartName); if (_spriterPartFile == null) { return(0f); } } var currentAnimator = _spriterPhysicsEntity.GetCurrentAnimator(); if (currentAnimator.FrameData != null) { var spriteData = currentAnimator.FrameData.SpriteData.Find((so) => so.FileId == _spriterFileId); if (spriteData == null) { return(0f); } var widthRadius = _spriterPartFile.Width * spriteData.ScaleX * currentAnimator.Scale.X; var heightRadius = _spriterPartFile.Height * spriteData.ScaleY * currentAnimator.Scale.Y; return(((widthRadius + heightRadius) / 4f) * _scale); } return(0f); }
private static IEnumerable <SdnFileEntry> LoadAssets(Spriter spriter, string rootFolder, SpriterDotNetBehaviour spriterDotNetBehaviour, bool andAssignAudioClips) { for (int i = 0; i < spriter.Folders.Length; ++i) { SpriterFolder folder = spriter.Folders[i]; for (int j = 0; j < folder.Files.Length; ++j) { SpriterFile file = folder.Files[j]; string path = rootFolder; path += "/"; path += file.Name; SdnFileEntry entry = new SdnFileEntry { FolderId = folder.Id, FileId = file.Id }; if (file.Type == SpriterFileType.Sound) { spriterDotNetBehaviour.StartCoroutine(GetAudioClip(entry, path, spriterDotNetBehaviour, andAssignAudioClips)); } else { entry.Sprite = LoadNewSprite(path); } yield return(entry); } } }
public SpriterCollisionCircle(ISpriterPhysicsEntity entity, string spritePartName, Vector2?relativePosition = null, float scale = 1f) : base(entity) { _spriterPhysicsEntity = entity; _spritePartName = spritePartName; _spriterPartFile = FindSpriterFile(spritePartName); _relativePosition = relativePosition ?? Vector2.Zero; _scale = scale; }
public override Vector2 GetCenter() { var currentAnimator = _spriterPhysicsEntity.GetCurrentAnimator(); if (_spriterPartFile == null) { _spriterPartFile = FindSpriterFile(_spritePartName); if (_spriterPartFile == null) { return(currentAnimator.Position); } } if (currentAnimator.FrameData != null) { var spriteData = currentAnimator.FrameData.SpriteData.Find((so) => so.FileId == _spriterFileId); var pivotX = (_spriterPartFile.Width * spriteData.PivotX) + spriteData.X; var pivotY = (_spriterPartFile.Height * spriteData.PivotY) - spriteData.Y; // Compute rotation var realPivotPosition = new Vector2(1 - spriteData.PivotX, 1 - spriteData.PivotY); var pivot = new Vector2( (_spriterPartFile.Width * realPivotPosition.X) + spriteData.X, (_spriterPartFile.Height * realPivotPosition.Y) - spriteData.Y ); var spriteCenter = new Vector2( _spriterPartFile.Width * realPivotPosition.X, _spriterPartFile.Height * realPivotPosition.Y ); var origin = currentAnimator.Position + pivot - spriteCenter; var rotation = -spriteData.Angle; rotation = MathHelper.WrapAngle(MathHelper.ToRadians(rotation)); var centerPosition = currentAnimator.Position + new Vector2(pivotX, pivotY) - new Vector2(_spriterPartFile.Width / 2f, _spriterPartFile.Height / 2f) + _relativePosition ; centerPosition = MathExtension.RotatePoint( centerPosition, rotation, origin ); centerPosition = MathExtension.RotatePoint( centerPosition, currentAnimator.Rotation, currentAnimator.Position ); return(centerPosition); } return(currentAnimator.Position); }
private string FormatPath(SpriterFolder folder, SpriterFile file, string spriterName) { string fileName = Path.GetFileNameWithoutExtension(file.Name); if (String.IsNullOrEmpty(folder.Name)) { return(String.Format("{0}/{1}", spriterName, fileName)); } return(String.Format("{0}/{1}/{2}", spriterName, folder.Name, fileName)); }
public SpriterCollisionConvexPolygon(ISpriterPhysicsEntity entity, String spritePartName, Vector2?relativePosition = null, float scale = 1f) : base(entity) { _spriterPhysicsEntity = entity; int folderId = 0; _spriterPartFile = SpriterUtils.GetSpriterFile(spritePartName, _spriterPhysicsEntity.GetCurrentAnimator(), out folderId); _relativePosition = relativePosition ?? Vector2.Zero; Vertices.Add(Vector2.Zero); Vertices.Add(new Vector2(_spriterPartFile.Width, 0) * scale); Vertices.Add(new Vector2(_spriterPartFile.Width, _spriterPartFile.Height) * scale); Vertices.Add(new Vector2(0, _spriterPartFile.Height) * scale); }
public override void Start() { base.Start(); _initialized = false; Boss.MoveTo(new Vector2(GameConfig.VirtualResolution.X / 2f, GameConfig.VirtualResolution.Y / 5f), 0.5f, true); Boss.CurrentAnimator.Play("Idle"); Boss.CurrentAnimator.AnimationFinished += AnimationFinishedHandler; _branch1File = SpriterUtils.GetSpriterFile("branch1.png", Boss.CurrentAnimator); _branch2File = SpriterUtils.GetSpriterFile("branch2.png", Boss.CurrentAnimator); _branches = new List <XmasSnowflakeBranch>(8); }
public SpriterCollisionConvexPolygon(ISpriterPhysicsEntity entity, String spritePartName, Vector2?relativePosition = null, Vector2?scaleVector = null) : base(entity) { var scale = Vector2.One; if (scaleVector.HasValue) { scale = scaleVector.Value; } _spriterPhysicsEntity = entity; _spriterPartFile = SpriterUtils.GetSpriterFile(spritePartName, _spriterPhysicsEntity.GetCurrentAnimator()); _relativePosition = relativePosition ?? Vector2.Zero; Vertices.Add(Vector2.Zero); Vertices.Add(new Vector2(_spriterPartFile.Width, 0) * scale); Vertices.Add(new Vector2(_spriterPartFile.Width, _spriterPartFile.Height) * scale); Vertices.Add(new Vector2(0, _spriterPartFile.Height) * scale); }
private static void InitInfos(SpriterAnimation animation) { if (animation.Timelines == null) { animation.Timelines = new SpriterTimeline[0]; } var infos = from t in animation.Timelines from k in t.Keys let o = k.ObjectInfo where o != null && (float.IsNaN(o.PivotX) || float.IsNaN(o.PivotY)) select o; foreach (SpriterObject info in infos) { SpriterFile file = animation.Entity.Spriter.Folders[info.FolderId].Files[info.FileId]; info.PivotX = file.PivotX; info.PivotY = file.PivotY; } }
public override void Start() { base.Start(); Boss.Speed = GameConfig.BossDefaultSpeed * 2.5f; Boss.CurrentAnimator.AnimationFinished += AnimationFinishedHandler; Boss.CurrentAnimator.EventTriggered += EventTriggeredHandler; Boss.MoveOutside(true); _candyBars = new List <XmasCandyBar>(); _patternStarted = false; _stretchOut = false; _stretchIn = false; Boss.StartShootTimer = false; Boss.ShootTimerTime = 0.0005f; Boss.ShootTimerFinished += ShootTimerFinished; _body2File = SpriterUtils.GetSpriterFile("body2.png", Boss.CurrentAnimator); }
private string FormatPath(SpriterFolder folder, SpriterFile file, string spriterName) { string fileName = Path.GetFileNameWithoutExtension(file.Name); if (String.IsNullOrEmpty(folder.Name)) return String.Format("{0}/{1}", spriterName, fileName); return String.Format("{0}/{1}/{2}", spriterName, folder.Name, fileName); }
public virtual void SetSound(Spriter spriter, SpriterFolder folder, SpriterFile file, TSound sound) { IAssetProvider <TSound> provider = SoundProviders.GetOrCreate(spriter); provider.Set(folder.Id, file.Id, sound); }
public virtual void SetSprite(Spriter spriter, SpriterFolder folder, SpriterFile file, TSprite sprite) { IAssetProvider <TSprite> provider = SpriteProviders.GetOrCreate(spriter); provider.Set(folder.Id, file.Id, sprite); }