Ejemplo n.º 1
0
 /// <summary>
 /// Method is called from CannonAmmoHandler to set ammo physics.
 /// </summary>
 /// <param name = 'ammoPhysics'> Physics to be set upon this object. </param>
 public void fireAmmo(CannonAmmoPhysics ammoPhysics)
 {
     Invoke(ACTIVATE_BALL_EXPLOSION_METHOD, time);
     transform.position             = ammoPhysics.positionOfAction;               //postion set to position of action
     transform.rigidbody2D.velocity = ammoPhysics.velocity;                       //ridigbody2D velocity to given ammo velocity
     mainCamera.SendMessage(TRACK_OBJECTS_METHOD, new Transform[] { transform }); //inform CameraTracker to track this object
     touchTrigger = true;
 }
	/// <summary>
	/// Method is called from CannonAmmoHandler to set ammo physics.
	/// </summary>
	/// <param name = 'ammoPhysics'> Physics to be set upon this object. </param>
	public void fireAmmo(CannonAmmoPhysics ammoPhysics)
	{
		Invoke(ACTIVATE_BALL_EXPLOSION_METHOD,time);
		transform.position = ammoPhysics.positionOfAction; //postion set to position of action
		transform.rigidbody2D.velocity = ammoPhysics.velocity; //ridigbody2D velocity to given ammo velocity
		mainCamera.SendMessage(TRACK_OBJECTS_METHOD,new Transform[]{transform}); //inform CameraTracker to track this object
		touchTrigger = true;
	}
	/// <summary>
	/// Method is called from CannonAmmoHandler to set ammo physics.
	/// </summary>
	/// <param name = 'ammoPhysics'> Physics to be set upon this object. </param>
	public void fireAmmo(CannonAmmoPhysics ammoPhysics)
	{
		transform.position = ammoPhysics.positionOfAction; //postion set to position of action
		transform.rigidbody2D.velocity = ammoPhysics.velocity; //ridigbody2D velocity to given ammo velocity
		transform.eulerAngles = new Vector3(0,0,(Mathf.Rad2Deg*ammoPhysics.angleRad)-90);
		mainCamera.SendMessage(TRACK_OBJECTS_METHOD,new Transform[]{transform}); //inform CameraTracker to track this object
		fired = true;
	}
 /// <summary>
 /// Method is called from CannonAmmoHandler to set ammo physics.
 /// </summary>
 /// <param name = 'ammoPhysics'> Physics to be set upon this object. </param>
 public void fireAmmo(CannonAmmoPhysics ammoPhysics)
 {
     transform.position             = ammoPhysics.positionOfAction;               //postion set to position of action
     transform.rigidbody2D.velocity = ammoPhysics.velocity;                       //ridigbody2D velocity to given ammo velocity
     transform.eulerAngles          = new Vector3(0, 0, (Mathf.Rad2Deg * ammoPhysics.angleRad) - 90);
     mainCamera.SendMessage(TRACK_OBJECTS_METHOD, new Transform[] { transform }); //inform CameraTracker to track this object
     fired = true;
 }
 /// <summary>
 /// Method updates ammo index and calls fire message in the current ammo.
 /// </summary>
 /// <param name = 'ammoPhysics'> Physics that the ammo is going follow. </param>
 public void fireCannonAmmo(CannonAmmoPhysics ammoPhysics)
 {
     if (ammoCount > 0)
     {
         if (index < ammoCount)
         {
             cannonAmmos[index].SendMessage(FIRE_AMMO_METHOD, ammoPhysics);
             index++;
         }
     }
 }
	/// <summary>
	/// Method updates ammo index and calls fire message in the current ammo.
	/// </summary>
	/// <param name = 'ammoPhysics'> Physics that the ammo is going follow. </param>
	public void fireCannonAmmo(CannonAmmoPhysics ammoPhysics)
	{
		if(ammoCount>0)
		{
			if(index<ammoCount)
			{
				cannonAmmos[index].SendMessage(FIRE_AMMO_METHOD,ammoPhysics);
				index++;
			}
		}
	}
	/// <summary>
	/// Method is called from CannonAmmoHandler to set ammo physics.
	/// </summary>
	/// <param name = 'ammoPhysics'> Physics to be set upon this object. </param>
	public void fireAmmo(CannonAmmoPhysics ammoPhysics)
	{
		Transform[] childArray = new Transform[3]; 
		transform.position = ammoPhysics.positionOfAction;

		//set physics to the 3 child objects
		for(int i=0;i<3;i++)
		{
			Vector2 velocity = ammoPhysics.velocity;
			velocity = new Vector2(velocity.x*scalarQuantity[i],velocity.y*scalarQuantity[i]);
			Transform child = transform.GetChild(i);
			child.rigidbody2D.velocity = velocity;

			child.SendMessage(CHANGE_DAMAGE_FORCES,new float[] {damageForce_1,damageForce_2,damageForce_3,damageForce_4});
			childArray[i] = child;
		}
		mainCamera.SendMessage(TRACK_OBJECTS_METHOD,childArray); //inform CameraTracker to track these 3 objects
	}
Ejemplo n.º 8
0
    /// <summary>
    /// Method is called from CannonAmmoHandler to set ammo physics.
    /// </summary>
    /// <param name = 'ammoPhysics'> Physics to be set upon this object. </param>
    public void fireAmmo(CannonAmmoPhysics ammoPhysics)
    {
        Transform[] childArray = new Transform[3];
        transform.position = ammoPhysics.positionOfAction;

        //set physics to the 3 child objects
        for (int i = 0; i < 3; i++)
        {
            Vector2 velocity = ammoPhysics.velocity;
            velocity = new Vector2(velocity.x * scalarQuantity[i], velocity.y * scalarQuantity[i]);
            Transform child = transform.GetChild(i);
            child.rigidbody2D.velocity = velocity;

            child.SendMessage(CHANGE_DAMAGE_FORCES, new float[] { damageForce_1, damageForce_2, damageForce_3, damageForce_4 });
            childArray[i] = child;
        }
        mainCamera.SendMessage(TRACK_OBJECTS_METHOD, childArray);        //inform CameraTracker to track these 3 objects
    }
	/// <summary>
	/// Method is called from CannonAmmoHandler to set ammo physics.
	/// </summary>
	/// <param name = 'ammoPhysics'> Physics to be set upon this object. </param>
	public void fireAmmo(CannonAmmoPhysics ammoPhysics)
	{
		Transform[] childArray = new Transform[7]; 
		float angleStepDeg = 70f/7f; //step angle
		
		float startDeg = transform.eulerAngles.z - 35f +180;
		float velocitySqrMag = 15f;
		
		for(int i=0;i<7;i++)
		{
			Transform child = cannonBallNormalArray[i];
			float angleRad = Mathf.Deg2Rad*startDeg;
			Vector2 velocity = new Vector2(Mathf.Cos(angleRad)*velocitySqrMag,Mathf.Sin(angleRad)*velocitySqrMag);
			child.rigidbody2D.velocity = velocity;
			startDeg += angleStepDeg;
		}
		
		Camera.main.SendMessage(TRACK_OBJECTS_METHOD,cannonBallNormalArray); //inform CameraTracker to track these 7 objects
	}
    /// <summary>
    /// Method is called from CannonAmmoHandler to set ammo physics.
    /// </summary>
    /// <param name = 'ammoPhysics'> Physics to be set upon this object. </param>
    public void fireAmmo(CannonAmmoPhysics ammoPhysics)
    {
        Transform[] childArray   = new Transform[7];
        float       angleStepDeg = 70f / 7f;

        float startDeg       = transform.eulerAngles.z - 35f;
        float velocitySqrMag = 15f;

        for (int i = 6; i >= 0; i--)
        {
            Transform child    = cannonBallNormalArray[i];
            float     angleRad = Mathf.Deg2Rad * startDeg;
            Vector2   velocity = new Vector2(Mathf.Cos(angleRad) * velocitySqrMag, Mathf.Sin(angleRad) * velocitySqrMag);
            child.rigidbody2D.velocity = velocity;
            startDeg += angleStepDeg;
        }

        Camera.main.SendMessage(TRACK_OBJECTS_METHOD, cannonBallNormalArray);        //inform CameraTracker to track these 7 objects
    }
    /// <summary>
    /// Method deals with when touch is released from the screen
    /// </summary>
    private void releaseTouch()
    {
        if (Input.GetMouseButtonUp(0))
        {
            //if was touch is true, then reset all times and send trajectory information to CannonAmmpHandler and invoke lock
            if (touch == true)
            {
                line.SetPosition(0, Vector3.zero);
                line.SetPosition(1, Vector3.zero);


                for (int i = 0; i < numberOfPoints; i++)
                {
                    cannonNoseLine.SetPosition(i, Vector3.zero);
                }

                CannonAmmoPhysics ammoPhysics = new CannonAmmoPhysics(angleRad, velocity, cannonNose.position);
                cannonAmmo.SendMessage(FIRE_CANNON_AMMO_METHOD, ammoPhysics);

                GameObject fire = Instantiate(cannonFire) as GameObject;
                fire.transform.position    = cannonNose.position;
                fire.transform.eulerAngles = new Vector3(0, 0, cannonFire.transform.eulerAngles.z + (Mathf.Rad2Deg * angleRad));
                fire.SendMessage(TRANSFORM_TO_FOLLOW_METHOD, cannonNose);

                touch = false;
                toggleTouchLock();

                Invoke(TOGGLE_TOUCH_LOCK_METHOD, touchLockToggleWaitTime);                 //call invoke to create a thread which calls toggleTouchLock after a few seconds

                this.SendMessage(CANNON_RICOCHET_ANIMATE_METHOD);
                playAudio();

                touchLock = true;
            }
            touchCamera = false;
        }
    }
	/// <summary>
	/// Method is called from CannonAmmoHandler to set ammo physics.
	/// </summary>
	/// <param name = 'ammoPhysics'> Physics to be set upon this object. </param>
	public void fireAmmo(CannonAmmoPhysics ammoPhysics)
	{
		transform.position = ammoPhysics.positionOfAction; //postion set to position of action
		transform.rigidbody2D.velocity = ammoPhysics.velocity; //ridigbody2D velocity to given ammo velocity
		mainCamera.SendMessage(TRACK_OBJECTS_METHOD,new Transform[]{transform}); //inform CameraTracker to track this object
	}
 /// <summary>
 /// Method is called from CannonAmmoHandler to set ammo physics.
 /// </summary>
 /// <param name = 'ammoPhysics'> Physics to be set upon this object. </param>
 public void fireAmmo(CannonAmmoPhysics ammoPhysics)
 {
     transform.position             = ammoPhysics.positionOfAction;               //postion set to position of action
     transform.rigidbody2D.velocity = ammoPhysics.velocity;                       //ridigbody2D velocity to given ammo velocity
     mainCamera.SendMessage(TRACK_OBJECTS_METHOD, new Transform[] { transform }); //inform CameraTracker to track this object
 }
	/// <summary>
	/// Method deals with when touch is released from the screen
	/// </summary>
	private void releaseTouch()
	{
		if(Input.GetMouseButtonUp(0))
		{
			//if was touch is true, then reset all times and send trajectory information to CannonAmmpHandler and invoke lock
			if(touch == true)
			{
				line.SetPosition(0,Vector3.zero);
				line.SetPosition(1,Vector3.zero);


				for(int i = 0;i<numberOfPoints;i++)
				{
					cannonNoseLine.SetPosition(i,Vector3.zero);
				}

				CannonAmmoPhysics ammoPhysics = new CannonAmmoPhysics(angleRad,velocity,cannonNose.position);
				cannonAmmo.SendMessage(FIRE_CANNON_AMMO_METHOD,ammoPhysics);

				GameObject fire = Instantiate(cannonFire) as GameObject;
				fire.transform.position = cannonNose.position;
				fire.transform.eulerAngles = new Vector3(0,0,cannonFire.transform.eulerAngles.z + (Mathf.Rad2Deg*angleRad));
				fire.SendMessage(TRANSFORM_TO_FOLLOW_METHOD,cannonNose);

				touch = false;
				toggleTouchLock();

				Invoke (TOGGLE_TOUCH_LOCK_METHOD,touchLockToggleWaitTime); //call invoke to create a thread which calls toggleTouchLock after a few seconds

				this.SendMessage(CANNON_RICOCHET_ANIMATE_METHOD);
				playAudio();

				touchLock = true;
			}
			touchCamera = false;
		}
	}