// Colliders void OnTriggerEnter2D(Collider2D other) { if (dead) return; if (other.gameObject.tag == "Hammer") { Destroy(other.gameObject); //StartCoroutine(hammerTimer()); } if (hammerTime == true && other.gameObject.tag == "Enemy") { PlayerData.Instance.Score += 100; Destroy(other.gameObject); } else if (hammerTime == false && other.gameObject.tag == "Enemy") { //dead = true; //this.animator.SetTrigger("DeathTrigger"); OSCSender.SendMessage(OSCSender.PDClient, OSCSender.enemyCollisionCmd, 1.0f ); gameObject.transform.position = initialPosition; } if (other.gameObject.tag == "WinLadder" && Input.GetKey(KeyCode.UpArrow)) { //this.animator.SetTrigger("WinTrigger"); } }
void OnTriggerStay2D(Collider2D other) { switch (other.gameObject.tag) { case "EG": OSCSender.SendMessage(OSCSender.PDClient, OSCSender.floorCmd, 0 ); break; case "Floor1": OSCSender.SendMessage(OSCSender.PDClient, OSCSender.floorCmd, 1 ); break; case "Floor2": OSCSender.SendMessage(OSCSender.PDClient, OSCSender.floorCmd, 2 ); break; case "Floor3": OSCSender.SendMessage(OSCSender.PDClient, OSCSender.floorCmd, 3 ); break; case "Floor4": OSCSender.SendMessage(OSCSender.PDClient, OSCSender.floorCmd, 4 ); break; default: break; } if (other.gameObject.tag == "Ladder") { isOnLadder = true; if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.DownArrow)) { this.animator.SetInteger("AnimState", 3); } } }
void OnCollisionEnter2D(Collision2D coll) { Debug.Log("collide and send"); OSCSender.SendMessage(OSCSender.PDClient, OSCSender.hitCmd + GATE_NUMBER, new List <float>() { Init.gateNotes[GATE_NUMBER].x, Init.gateNotes[GATE_NUMBER].y }); }
void Update() { if (dead) return; // Restart if ( Input.GetKeyUp( KeyCode.R ) ) { gameObject.transform.position = initialPosition; hammerTime = false; } else if ( Input.GetKeyUp( KeyCode.H ) ) { // Hammer Time hammerTime = !hammerTime; if (hammerTime) { OSCSender.SendMessage(OSCSender.PDClient, OSCSender.hammerTimeCmd, 1 ); } else { OSCSender.SendMessage(OSCSender.PDClient, OSCSender.hammerTimeCmd, 0 ); } } CheckGround(); var forceX = 0f; var forceY = 0f; var absVelX = Mathf.Abs(rb2d.velocity.x); var absVelY = Mathf.Abs(rb2d.velocity.y); if (absVelY < .2f) { standing = true; } else { standing = false; } // Moving Left or Right if (controller.moving.x != 0) { if (absVelX < maxVelocity.x) { forceX = standing ? speed * controller.moving.x : (speed * controller.moving.x); transform.localScale = new Vector3(forceX > 0 ? -3 : 3, 3, 0); OSCSender.SendMessage(OSCSender.PDClient, OSCSender.movingCmd, forceX > 0 ? -1.0f : 1.0f ); } } // Standing else if (controller.moving.x == 0) { if (!hammerTime) this.animator.SetInteger("AnimState", 0); else if (hammerTime) { this.animator.SetInteger("AnimState", 5); } OSCSender.SendMessage(OSCSender.PDClient, OSCSender.movingCmd, 0.0f ); } // Moving Up or Down, Only if Mario is on a ladder trigger if (controller.moving.y > 0 && isOnLadder == true) { if (absVelY < maxVelocity.y) { forceY = controller.moving.y * climbSpeed; this.animator.SetInteger("AnimState", 4); } else { this.animator.SetInteger("AnimState", 3); } } else if (absVelY > 0 && isOnGround == true) { this.animator.SetInteger("AnimState", 0); } // Jumping only if Mario is on the ground if (isOnGround == true && Input.GetKeyDown(KeyCode.Space)) { Debug.Log("Space"); rb2d.AddForce(Vector2.up * jumpForce); this.animator.SetInteger("AnimState", 2); OSCSender.SendMessage(OSCSender.PDClient, OSCSender.jumpCmd, 1.0f ); if (!hammerTime){ PlaySound(this.jumpClip); } } // Play sound clip once if (isOnGround == true && (Input.GetKeyDown(KeyCode.LeftArrow) || Input.GetKeyDown(KeyCode.RightArrow))) { if (!hammerTime) { PlaySound(this.walkingClip); this.animator.SetInteger("AnimState", 1); } else if (hammerTime) { this.animator.SetInteger("AnimState", 6); } } rb2d.AddForce(new Vector2(forceX, forceY)); // Lower left is 0 0 (6.5, 5.0) // float[] xy = {rb2d.transform.position.x, rb2d.transform.position.y}; List<float> xy = new List<float>(); xy.Add((rb2d.transform.position.x + width/2)/width); xy.Add(1.0f - ((rb2d.transform.position.y + height/2)/height)); xy.Add(rb2d.velocity.x); xy.Add(rb2d.velocity.y); OSCSender.SendMessage(OSCSender.PDClient, OSCSender.positionCmd, xy); }