private IEnumerable <bool> GetTaskSequence() { if (this.Pictures.Count == 0) // ? 画像が追加されていない。 { throw new DDError(); } int outOfCameraFrame = 0; for (int frame = 0; ; frame++) { double drawX = this.X - DDGround.ICamera.X; double drawY = this.Y - DDGround.ICamera.Y; DDDraw.SetAlpha(this.A); DDDraw.DrawBegin(this.Pictures[(frame / this.FramePerPicture) % this.Pictures.Count], drawX, drawY); DDDraw.DrawRotate(this.R); DDDraw.DrawZoom(this.Z); DDDraw.DrawEnd(); this.X += this.XAdd; this.Y += this.YAdd; this.R += this.RAdd; this.Z += this.ZAdd; this.A += this.AAdd; this.XAdd += this.XAdd2; this.YAdd += this.YAdd2; this.RAdd += this.RAdd2; this.ZAdd += this.ZAdd2; this.AAdd += this.AAdd2; if (DDUtils.IsOutOfScreen(new D2Point(drawX, drawY))) //if (DDUtils.IsOutOfCamera(new D2Point(this.X, this.Y))) { outOfCameraFrame++; if (20 < outOfCameraFrame) { break; } } else { outOfCameraFrame = 0; } if (this.A < 0.0) { break; } yield return(true); } }