Пример #1
0
    // Update is called once per frame
    void Update()
    {
        if (!staticScript.rhythmManager.DynamicRhythm.Tyming)
        {
            return;
        }
        int CurTyming = (int)staticScript.rhythmManager.DynamicRhythm.Pos;

        for (int i = 0; i < reserveMarkerDataList.Count; i++)
        {
            ReserveMarkerData data = reserveMarkerDataList[i];
            if (data.AimingMarker == null && !data.IsSwordEnemy)
            {
                data.AimingMarker = AimingMarkerEmit(data);
                data.AimingMarker.Setting_DefaultScale();
            }

            if (data.Tyming == CurTyming)
            {
                Emit(data);
                List_Remove(i);
                i--;
            }
        }
    }
Пример #2
0
    public void RemoveFromEnemy(Enemy enemy)
    {
        for (int i = 0; i < reserveMarkerDataList.Count; i++)
        {
            ReserveMarkerData data = reserveMarkerDataList[i];

            if (data.FireEnemy == enemy)
            {
                List_Remove(i);
                i--;
            }
        }
    }
Пример #3
0
    public AimingMarker AimingMarkerEmit(AimingMarker aimingMarker, ReserveMarkerData data)
    {
        GameObject tmp = Instantiate(aimingMarker.gameObject, Vector3.zero, Quaternion.identity) as GameObject;

        AimingMarker markerCompornent = tmp.transform.GetComponent <AimingMarker>();

        markerCompornent.MarkerCanvas  = canvas.gameObject;
        tmp.transform.parent           = canvas.transform;
        tmp.transform.localScale       = aimingMarker.transform.localScale;
        markerCompornent.PosOnScreen.x = data.Pos.x;
        markerCompornent.PosOnScreen.y = data.Pos.y;
        markerCompornent.data          = data;
        markerCompornent.SettingPos();
        return(markerCompornent);
    }
	public AimingMarker AimingMarkerEmit( AimingMarker aimingMarker , ReserveMarkerData data )
	{

		GameObject tmp = Instantiate( aimingMarker .gameObject , Vector3 .zero , Quaternion .identity ) as GameObject;

		AimingMarker markerCompornent = tmp .transform .GetComponent<AimingMarker>();
		markerCompornent .MarkerCanvas = canvas .gameObject;
		tmp .transform .parent = canvas .transform;
		tmp .transform .localScale = aimingMarker .transform .localScale;
		markerCompornent .PosOnScreen .x = data .Pos .x;
		markerCompornent .PosOnScreen .y = data .Pos .y;
		markerCompornent .data = data;
		markerCompornent .SettingPos();
		return markerCompornent;
	}
Пример #5
0
    private bool Entry(Vector2 Pos, int Tyming, GameObject Bullet, Transform FirePoint, Enemy enemy, bool IsSwordEnemy)
    {
        int BulletCount = 0;

        for (int i = 0; i < reserveMarkerDataList.Count; i++)
        {
            ReserveMarkerData data = reserveMarkerDataList[i];

            if (data.Tyming == Tyming)
            {
                BulletCount++;
            }

            if (BulletCount >= 1)
            {
                return(false);
            }
        }
        //攻撃できそうなら


        //現在出ているマーカーと重ならないように調整する
        float Radius   = 0.5f;
        float RadiusSq = Radius * Radius;

        bool loop = true;
        int  cnt  = 0;

        Vector2 LengthSq;

        while (loop && cnt < 5 && !IsSwordEnemy)
        {
            cnt++;
            loop = false;
            foreach (Marker marker in staticScript.markerManager.MarkerList)
            {
                LengthSq = Pos - marker.PosOnScreen;
                if (LengthSq.sqrMagnitude == .0f)
                {
                    LengthSq = Random.insideUnitCircle * 0.01f;
                }
                if (LengthSq.sqrMagnitude < RadiusSq)
                {
                    LengthSq.Normalize();
                    Pos  = marker.PosOnScreen + LengthSq * Radius;
                    loop = true;
                }
            }

            foreach (ReserveMarkerData data in reserveMarkerDataList)
            {
                if (data.IsSwordEnemy)
                {
                    continue;
                }
                LengthSq = Pos - data.Pos;
                if (LengthSq.sqrMagnitude == .0f)
                {
                    LengthSq = Random.insideUnitCircle * 0.01f;
                }
                if (LengthSq.sqrMagnitude < RadiusSq)
                {
                    LengthSq.Normalize();
                    Pos  = data.Pos + LengthSq * Radius;
                    loop = true;
                }
            }
        }

        ReserveMarkerData add = new ReserveMarkerData();

        add.Tyming       = Tyming;
        add.Bullet       = Bullet;
        add.FirePoint    = FirePoint;
        add.Pos          = Pos;
        add.FireEnemy    = enemy;
        add.IsSwordEnemy = IsSwordEnemy;
        reserveMarkerDataList.Add(add);
        return(true);
    }
Пример #6
0
 AimingMarker AimingMarkerEmit(ReserveMarkerData data)
 {
     return(staticScript.staticMarkerEmitter.AimingMarkerEmit(aimingMarker, data));
 }
Пример #7
0
 Marker Emit(ReserveMarkerData data)
 {
     return(staticScript.staticMarkerEmitter.Emit(data.Bullet, data.Pos, data.FirePoint.position, data.FireEnemy, data.IsSwordEnemy));
 }
Пример #8
0
	private bool Entry(Vector2  Pos , int Tyming,GameObject Bullet, Transform FirePoint, Enemy enemy, bool IsSwordEnemy)
	{
		int BulletCount = 0;
		for (int i = 0;i < reserveMarkerDataList .Count;i++)
		{
			ReserveMarkerData data = reserveMarkerDataList[i];

			if (data .Tyming == Tyming)
				BulletCount++;

			if (BulletCount >= 1)
				return false;
			
		}
		//攻撃できそうなら
		

		//現在出ているマーカーと重ならないように調整する
		float Radius = 0.5f;
		float RadiusSq = Radius * Radius;

		bool loop = true;
		int cnt = 0;

		Vector2 LengthSq ;

		while (loop && cnt < 5 && !IsSwordEnemy)
		{
			cnt++;
			loop = false;
			foreach (Marker marker in staticScript.markerManager.MarkerList)
			{
				LengthSq = Pos - marker .PosOnScreen;
				if (LengthSq .sqrMagnitude == .0f)
				{
					LengthSq = Random .insideUnitCircle * 0.01f;
				}
				if(LengthSq.sqrMagnitude <RadiusSq)
				{
					LengthSq .Normalize();
					Pos =marker .PosOnScreen + LengthSq * Radius;
					loop = true;
				}
			}

			foreach(ReserveMarkerData data in reserveMarkerDataList)
			{
				if (data .IsSwordEnemy)
					continue;
				LengthSq = Pos - data .Pos;
				if (LengthSq .sqrMagnitude == .0f)
				{
					LengthSq = Random .insideUnitCircle * 0.01f;
				}
				if (LengthSq .sqrMagnitude < RadiusSq)
				{
					LengthSq .Normalize();
					Pos = data .Pos + LengthSq * Radius;
					loop = true;
				}


			}


		}

		ReserveMarkerData add = new ReserveMarkerData();
		add.Tyming =Tyming;
		add .Bullet = Bullet;
		add .FirePoint = FirePoint;
		add .Pos = Pos;
		add .FireEnemy = enemy;
		add .IsSwordEnemy = IsSwordEnemy;
		reserveMarkerDataList .Add( add );
		return true;
	}
Пример #9
0
	AimingMarker AimingMarkerEmit( ReserveMarkerData data )
	{
		return staticScript .staticMarkerEmitter .AimingMarkerEmit( aimingMarker , data );
	}
Пример #10
0
	Marker Emit(ReserveMarkerData data)
	{
		return staticScript .staticMarkerEmitter .Emit( data .Bullet , data .Pos , data .FirePoint.position,data.FireEnemy,data.IsSwordEnemy );
	}