public void emitBlob(string text, bool good) { elapsedTime = 0.0f; nextString = text; nextGood = good; state = WFYingYangState.trembling; }
new void Start() { state = WFYingYangState.idle; elapsedTime = 0.0f; scale = 0.0f; angle = 0.0f; angleSpeed = fastAngleSpeed; this.transform.localScale = Vector3.zero; oddFrame = true; difficulty = controller.difficulty; }
void Update() { if (state == WFYingYangState.idle) { } if (state == WFYingYangState.homing) { int nTurns = (int)(angle / 360.0f); float normalAngle = angle - 360.0f * nTurns; angle = normalAngle; angle += angleSpeed * Time.deltaTime; angleSpeed += Time.deltaTime * 20.0f; if (angle > 360.0f) { angle = 360.0f; state = WFYingYangState.idle; } this.transform.rotation = Quaternion.Euler(0, 0, angle); } if (state == WFYingYangState.growing) { scale += scaleSpeed * Time.deltaTime; if (scale > maxScale) { scale = maxScale; state = WFYingYangState.spinning; notifyFinishAction(); } angle += angleSpeed * Time.deltaTime; this.transform.localScale = new Vector3(scale, scale, scale); this.transform.rotation = Quaternion.Euler(0, 0, angle); if (angleSpeed > slowAngleSpeed) { angleSpeed = angleSpeed * 0.97f; } } if (state == WFYingYangState.spinning) { if (angleSpeed > slowAngleSpeed) { angleSpeed = angleSpeed * 0.97f; } angle += angleSpeed * Time.deltaTime; this.transform.rotation = Quaternion.Euler(0, 0, angle); } if (state == WFYingYangState.trembling) { angle += angleSpeed * Time.deltaTime; this.transform.rotation = Quaternion.Euler(0, 0, angle); Vector3 newPos = this.transform.position; if (oddFrame) { newPos.y += 0.05f; } else { newPos.y -= 0.05f; } this.transform.position = newPos; oddFrame = !oddFrame; elapsedTime += Time.deltaTime; if (elapsedTime > tremblingTime) { elapsedTime = 0.0f; newPos = this.transform.position; if (oddFrame) { newPos.y += 0.05f; } else { newPos.y -= 0.05f; } this.transform.position = newPos; Vector3 spawnPos = this.transform.position; spawnPos.z += zOffset; GameObject newBlobGO = (GameObject)Instantiate(wordBlobPrefab, spawnPos, Quaternion.Euler(Vector3.zero)); WordFightWordBlob newBlob = newBlobGO.GetComponent <WordFightWordBlob> (); newBlobGO.name = "WFBlob"; newBlob.angle = FloatRandom.floatRandomRange(0.0f, 6.28f); newBlob.initialize(); newBlob.good = nextGood; newBlob.controller = controller; newBlob.yinYang = this; newBlob.cam = cam; newBlob.difficulty = difficulty; if (nextString.Equals("")) { nextString = ""; } newBlob.setText(nextString); state = WFYingYangState.spinning; } } }
public void grow() { state = WFYingYangState.growing; }
public void home() { state = WFYingYangState.homing; }