Exemplo n.º 1
0
 public override void Ctrl()
 {
     base.Ctrl();
     if (this.Time >= this.LifeTime)
     {
         this.BulletList.ForEach((Action <BaseBullet_Touhou>)(x => x.Enabled = true));
     }
     if (this.Time % 2 != 0 || this.indexY >= this.length)
     {
         return;
     }
     for (int index = 0; index < this.length; ++index)
     {
         if (this.BulletPic[index, this.indexY])
         {
             PointF            OriginalPosition = new PointF(this.OriginalPosition.X + (float)(index - this.length / 2) * 5f, this.OriginalPosition.Y + (float)(this.indexY - this.length / 2) * 5f);
             BaseBullet_Touhou baseBulletTouhou = new BaseBullet_Touhou(this.StageData, (string)null, OriginalPosition, 0.0f, 0.0);
             baseBulletTouhou.Copy(this.Bullet);
             baseBulletTouhou.OriginalPosition = OriginalPosition;
             baseBulletTouhou.Velocity         = (float)baseBulletTouhou.GetDistance(this.OriginalPosition) * 3f / (float)this.length;
             baseBulletTouhou.DirectionDegree  = (double)this.Ran.Next(360);
             baseBulletTouhou.Enabled          = false;
             this.StageData.SoundPlay("se_tan00a.wav");
         }
     }
     ++this.indexY;
 }
Exemplo n.º 2
0
        public static void ShootBulletPic02(
            StageDataPackage StageData,
            string BPicName,
            BaseObject Bullet,
            PointF OriginalPosition,
            double Direction,
            byte ColorType,
            float Scale,
            bool Mirrored)
        {
            bool[,] bulletPic = StageData.GlobalData.BulletPicDictionary[BPicName];
            int num1 = (int)Math.Sqrt((double)bulletPic.Length);
            int num2 = Mirrored ? -1 : 1;

            for (int index1 = 0; index1 < num1; ++index1)
            {
                for (int index2 = 0; index2 < num1; ++index2)
                {
                    if (bulletPic[index1, index2])
                    {
                        float             num3             = (float)((double)num2 * (double)((float)index1 - (float)(((double)num1 - 1.0) / 2.0)) * Math.Cos(Direction - Math.PI / 2.0) + (double)((float)index2 - (float)(((double)num1 - 1.0) / 2.0)) * Math.Sin(Direction - Math.PI / 2.0));
                        float             num4             = (float)((double)-num2 * (double)((float)index1 - (float)(((double)num1 - 1.0) / 2.0)) * Math.Sin(Direction - Math.PI / 2.0) + (double)((float)index2 - (float)(((double)num1 - 1.0) / 2.0)) * Math.Cos(Direction - Math.PI / 2.0));
                        PointF            pointF           = new PointF(OriginalPosition.X + num3 * Scale, OriginalPosition.Y - num4 * Scale);
                        BaseBullet_Touhou baseBulletTouhou = new BaseBullet_Touhou(StageData, (string)null, OriginalPosition, 0.0f, 0.0);
                        baseBulletTouhou.Copy(Bullet);
                        baseBulletTouhou.ColorType        = ColorType;
                        baseBulletTouhou.OriginalPosition = OriginalPosition;
                        baseBulletTouhou.DestPoint        = pointF;
                    }
                }
            }
        }
Exemplo n.º 3
0
        public BulletGroupCircle(
            StageDataPackage StageData,
            BaseObject bullet,
            PointF OriginalPosition,
            double Direction,
            int Count,
            int Radius,
            byte ColorType)
        {
            double num = Direction;

            for (int index = 0; index < Count; ++index)
            {
                PointF            OriginalPosition1 = new PointF(OriginalPosition.X + (float)Radius * (float)Math.Cos(num), OriginalPosition.Y + (float)Radius * (float)Math.Sin(num));
                BaseBullet_Touhou baseBulletTouhou  = new BaseBullet_Touhou(StageData, (string)null, OriginalPosition1, 0.0f, 0.0, ColorType);
                baseBulletTouhou.Copy(bullet);
                baseBulletTouhou.OriginalPosition = OriginalPosition1;
                baseBulletTouhou.Direction        = num;
                num += 2.0 * Math.PI / (double)Count;
            }
            StageData.SoundPlay("se_tan00a.wav");
        }