public Note(int id, float pos, float time, float size, NoteStyleType type, int flickdir, NoteResultType resultType = NoteResultType.Unknown) { this.id = id; this.pos = pos; this.time = time; this.size = size; this.result = resultType; this.type = type; this.flickdir = flickdir; }
private int getColor(NoteResultType x) { switch (x) { case NoteResultType.Perfect: return(0); case NoteResultType.Good: return(1); case NoteResultType.Bad: return(2); default: return(-1); } }
void Update() { for (int i = 0; i < 1; i++) { if (Input.GetMouseButtonDown(0)) { ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 9999f, (1 << LayerMask.NameToLayer("Line")))) { obj = hit.collider.gameObject; hitpoint = hit.point; if (obj.name == "Line") { if (Mathf.Abs(player.transform.position.x - hitpoint.x) < 3) { onplayermove = true; player.transform.position = new Vector3(hitpoint.x + 0.50f, player.transform.position.y, player.transform.position.z); } } } else { onplayermove = false; ray = new Ray(player.transform.position, Vector3.forward); if (Physics.Raycast(ray, out hit)) { hitpoint = hit.point; obj = hit.collider.gameObject; if (hit.transform.tag == "ClickNote") { NoteResultType res = CheckClickResult(hitpoint.z); Debug.Log(res); if (res != NoteResultType.Unknown) { Destroy(hit.collider.gameObject); noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position, getColor(res)); } } if (hit.transform.tag == "FlickNote") { flickres = CheckClickResult(hitpoint.z); if (flickres != NoteResultType.Unknown) { curnote = hit.transform.gameObject; } Debug.Log(flickres); if (fingerTouchState == FINGER_STATE_NULL) { fingerTouchState = FINGER_STATE_TOUCH; fingerBeginX = Input.mousePosition.x; fingerBeginY = Input.mousePosition.y; } } } } } if (Input.GetMouseButton(0)) { if (onplayermove) { ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 9999f, (1 << LayerMask.NameToLayer("Line")))) { //Debug.Log(hit.collider.gameObject.name); obj = hit.collider.gameObject; hitpoint = hit.point; if (obj.name == "Line") { if (Mathf.Abs(player.transform.position.x - hitpoint.x) < 10) { player.transform.position = new Vector3(hitpoint.x + 0.50f, player.transform.position.y, player.transform.position.z); } else { onplayermove = false; } } else { onplayermove = false; } } else { onplayermove = false; } } if (fingerTouchState == FINGER_STATE_TOUCH) { fingerCurrentX = Input.mousePosition.x; fingerCurrentY = Input.mousePosition.y; fingerSegmentX = fingerCurrentX - fingerBeginX; fingerSegmentY = fingerCurrentY - fingerBeginY; float fingerDistance = fingerSegmentX * fingerSegmentX + fingerSegmentY * fingerSegmentY; if (fingerDistance > (fingerActionSensitivity * fingerActionSensitivity)) { Debug.Log(flickres); fingerTouchState = FINGER_STATE_ADD; if (Mathf.Abs(fingerSegmentX) > Mathf.Abs(fingerSegmentY)) { fingerSegmentY = 0; } else { fingerSegmentX = 0; } if (fingerSegmentX == 0) { if (fingerSegmentY > 0) { Debug.Log("up"); if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 2) { Destroy(curnote); noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position); } } else { Debug.Log("down"); if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 4) { Destroy(curnote); noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position); } } } else if (fingerSegmentY == 0) { if (fingerSegmentX > 0) { Debug.Log("right"); animator.SetBool("onMoveRight", true); if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 1) { Destroy(curnote); noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position); } } else { Debug.Log("left"); animator.SetBool("onMoveLeft", true); if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 3) { Destroy(curnote); noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position); } } } } } } if (Input.GetMouseButtonUp(0)) { fingerTouchState = FINGER_STATE_NULL; onplayermove = false; animator.SetBool("onMoveRight", false); animator.SetBool("onMoveLeft", false); } if (Input.GetKeyDown(KeyCode.Space)) { ray = new Ray(player.transform.position - new Vector3(0.50f, 0, 0), Vector3.forward); if (Physics.Raycast(ray, out hit)) { hitpoint = hit.point; obj = hit.collider.gameObject; if (hit.transform.tag == "ClickNote") { animator.SetBool("onBlockNormal", true); NoteResultType res = CheckClickResult(hitpoint.z); Debug.Log(res); if (res != NoteResultType.Unknown) { Destroy(hit.collider.gameObject); GUIhp.UpdateHP(-0.002f); noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position, getColor(res)); } } } } else { animator.SetBool("onBlockNormal", false); } if (Input.GetKeyDown(KeyCode.W) || Input.GetKeyDown(KeyCode.A) || Input.GetKeyDown(KeyCode.S) || Input.GetKeyDown(KeyCode.D)) { if (Input.GetKeyDown(KeyCode.W)) { curkey = KeyCode.W; } if (Input.GetKeyDown(KeyCode.A)) { curkey = KeyCode.A; } if (Input.GetKeyDown(KeyCode.S)) { curkey = KeyCode.S; } if (Input.GetKeyDown(KeyCode.D)) { curkey = KeyCode.D; } ray = new Ray(player.transform.position - new Vector3(0.50f, 0, 0), Vector3.forward); if (Physics.Raycast(ray, out hit)) { hitpoint = hit.point; obj = hit.collider.gameObject; if (hit.transform.tag == "FlickNote") { animator.SetBool("onBlockUp", true); flickres = CheckClickResult(hitpoint.z); if (flickres != NoteResultType.Unknown) { curnote = obj; } Debug.Log(flickres); switch (curkey) { case KeyCode.D: if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 1) { GUIhp.UpdateHP(-0.003f); Destroy(curnote); noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position); } break; case KeyCode.W: if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 2) { GUIhp.UpdateHP(-0.003f); Destroy(curnote); noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position); } break; case KeyCode.A: if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 3) { GUIhp.UpdateHP(-0.003f); Destroy(curnote); noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position); } break; case KeyCode.S: if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 4) { GUIhp.UpdateHP(-0.0031f); Destroy(curnote); noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position); } break; } } } } else { animator.SetBool("onBlockUp", false); } } }