예제 #1
0
    public void startRotatingForward()
    {
        // disable battery restrictions when in tutorial
        if (tutorialOn || BatterySystem.GetPower() > 0)
        {
            if (!tutorialOn)
            {
                BatterySystem.SubPower(1);
            }
            numXClicks++;
            RotateBehavior rotateBehavior = objectToRotate.GetComponent <RotateBehavior>();
            if (!rotateBehavior.rotating())
            {
                //rotate
                rotateBehavior.setRotatingForward(true);
                float targetRotation = rotateBehavior.getTargetRotation();

                objectToRotate.transform.Rotate(-targetRotation, 0, 0);
                rotateBehavior.setEndRotation(objectToRotate.transform.rotation);
                objectToRotate.transform.Rotate(targetRotation, 0, 0);
            }

            timerStart = true;
        }
    }
예제 #2
0
 void Update()
 {
     elapsedTime += Time.deltaTime;
     if (elapsedTime > 0.1F)
     {
         elapsedTime = 0.0F;
         GameObject cardInstance = Instantiate(card, Vector3.zero, Quaternion.FromToRotation(Vector3.up, Random.onUnitSphere));
         cardInstance.transform.localScale = new Vector3(2.0F, 2.0F, 2.0F);
         RotateBehavior rotate = cardInstance.AddComponent <RotateBehavior>();
         rotate.RotationSpeed        = Random.Range(180.0F, 720.0F);
         rotate.RotationDirection    = Random.onUnitSphere;
         rotate.TranslationSpeed     = Random.Range(10.0F, 20.0F);
         rotate.TranslationDirection = Random.onUnitSphere;
     }
 }
예제 #3
0
 // Update is called once per frame
 void Update()
 {
     //this should fix the stuck/infinite rotation glitch
     if (timerStart)
     {
         transform.GetComponent <Button>().interactable = false;
         timer += Time.deltaTime;
         RotateBehavior rotateBehavior = objectToRotate.GetComponent <RotateBehavior>();
         if (!rotateBehavior.rotating())
         {
             transform.GetComponent <Button>().interactable = true;
             timerStart = false;
             timer      = 0;
         }
         else if (rotateBehavior.rotating() && timer > 1)
         {
             Quaternion endRotation = rotateBehavior.getEndRotation();
             objectToRotate.transform.rotation = endRotation;
             timerStart = false;
             timer      = 0;
             transform.GetComponent <Button>().interactable = true;
         }
     }
 }
예제 #4
0
 public WallBlock(RotateBehavior rotateBehavior, MoveBehavior moveBehavior) : base(rotateBehavior, moveBehavior)
 {
 }
예제 #5
0
 public void setRotateBehavior(RotateBehavior rotateBehavior)
 {
     this.rotateBehavior = rotateBehavior;
 }
예제 #6
0
 public SimpleBlock(RotateBehavior rotateBehavior, MoveBehavior moveBehavior)
 {
     this.rotateBehavior = rotateBehavior;
     this.moveBehavior   = moveBehavior;
 }
예제 #7
0
 public ImageDataBlock(RotateBehavior rotateBehavior, MoveBehavior moveBehavior, ColorMixingBehavior colorMixingBehavior) : base(rotateBehavior, moveBehavior)
 {
     this.colorMixingBehavior = colorMixingBehavior;
 }
예제 #8
0
 public SamplePlayableBlock(RotateBehavior rotateBehavior, MoveBehavior moveBehavior, ColorMixingBehavior colorMixingBehavior)
     : base(rotateBehavior, moveBehavior, colorMixingBehavior)
 {
 }