/// <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 }
/// <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; } }