private float GetAxis(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player) { // Check if we want the *new* SDK input or the example common if (m_useSDKForInput) { // Get the Unity Axis Name for the Unity API string axisName = OuyaSDK.GetUnityAxisName(keyCode, player); // Check if the axis name is valid if (!string.IsNullOrEmpty(axisName)) { //use the Unity API to get the axis value, raw or otherwise float axisValue = Input.GetAxisRaw(axisName); //check if the axis should be inverted if (OuyaSDK.GetAxisInverted(keyCode, player)) { return(-axisValue); } else { return(axisValue); } } } // moving the common code into the sdk via above else { return(OuyaExampleCommon.GetAxis(keyCode, player)); } return(0f); }
protected override float ProcessAxis(Key key, float deadZone) { if (key.map == InputKeyMap.None) { return(base.ProcessAxis(key, deadZone)); } OuyaSDK.OuyaPlayer player = GetPlayer(key); switch (key.axis) { case ButtonAxis.Minus: return(OuyaExampleCommon.GetButton((OuyaSDK.KeyEnum)key.map, player) ? -1.0f : 0.0f); break; case ButtonAxis.Plus: return(OuyaExampleCommon.GetButton((OuyaSDK.KeyEnum)key.map, player) ? 1.0f : 0.0f); break; case ButtonAxis.Both: float val = OuyaExampleCommon.GetAxis((OuyaSDK.KeyEnum)key.map, player); return(Mathf.Abs(val) > deadZone ? val : 0.0f); } return(0.0f); }
private void FixedUpdate() { OuyaExampleCommon.UpdateJoysticks(); if (RendererLabel) { RendererLabel.text = m_items.Count.ToString(); } if (PolysLabel) { int count = 0; foreach (MeshFilter mf in m_items) { if (mf.mesh) { count += mf.mesh.vertexCount; } } PolysLabel.text = count.ToString(); } if (m_timerChange < DateTime.Now) { m_timerChange = DateTime.Now + TimeSpan.FromMilliseconds(200); if (OuyaExampleCommon.GetButton(OuyaSDK.OuyaPlayer.player1, OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT)) { DecreaseGeometry(1f); } if (OuyaExampleCommon.GetButton(OuyaSDK.OuyaPlayer.player1, OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT)) { IncreaseGeometry(1f); } if (OuyaExampleCommon.GetButton(OuyaSDK.OuyaPlayer.player1, OuyaSDK.KeyEnum.BUTTON_DPAD_UP)) { CombineGeometry(); } if (OuyaExampleCommon.GetButton(OuyaSDK.OuyaPlayer.player1, OuyaSDK.KeyEnum.BUTTON_O)) { IncreaseGeometry(0.1f); } if (OuyaExampleCommon.GetButton(OuyaSDK.OuyaPlayer.player1, OuyaSDK.KeyEnum.BUTTON_A)) { DecreaseGeometry(0.1f); } } float x = OuyaExampleCommon.GetAxis("LY", OuyaSDK.OuyaPlayer.player1); float y = OuyaExampleCommon.GetAxis("LX", OuyaSDK.OuyaPlayer.player1); Camera.main.transform.RotateAround(new Vector3(0, 0, 3), Camera.main.transform.rotation * Vector3.right, x * 45 * Time.fixedDeltaTime); Camera.main.transform.RotateAround(new Vector3(0, 0, 3), Camera.main.transform.rotation * Vector3.up, y * 45 * Time.fixedDeltaTime); }
public static float GetAxis(string inputName, OuyaSDK.OuyaPlayer player) { switch (Moga) { case true: switch (inputName) { case "TurnRight": return(MogaInput.GetAxis("R2")); //MogaController.KEYCODE_BUTTON_R2;//R2 case "TurnLeft": return(MogaInput.GetAxis("L2")); //MogaController.KEYCODE_BUTTON_L2;//L2 case "Roll": return(MogaInput.GetAxis("Horizontal")); //MogaController.AXIS_X;//X case "Vertical": return(MogaInput.GetAxis("Vertical")); //MogaController.AXIS_Y;//Y case "Pitch": return(MogaInput.GetAxis("LookVertical")); //MogaController.AXIS_RZ;//RZ case "Yaw": return(MogaInput.GetAxis("LookHorizontal")); //MogaController.AXIS_Z;//Z default: return(0); } case false: switch (inputName) { case "TurnRight": return(OuyaExampleCommon.GetAxis("RT", player)); case "TurnLeft": return(OuyaExampleCommon.GetAxis("LT", player)); case "Roll": return(OuyaExampleCommon.GetAxis("LX", player)); case "Vertical": return(OuyaExampleCommon.GetAxis("LY", player)); case "Pitch": return(OuyaExampleCommon.GetAxis("RY", player)); case "Yaw": return(OuyaExampleCommon.GetAxis("RX", player)); default: return(0); } } return(0); }
void UpdateTexture() { // range -1 to 1 float axisX = OuyaExampleCommon.GetAxis(OuyaSDK.KeyEnum.AXIS_LSTICK_X, Player); float axisY = OuyaExampleCommon.GetAxis(OuyaSDK.KeyEnum.AXIS_LSTICK_Y, Player); // put in 0 to TextureSize range int x = (int)((axisX + 1) * 0.5f * (TextureSize - 1)); int y = (int)((-axisY + 1) * 0.5f * (TextureSize - 1)); int index = x + y * TextureSize; if (x != m_lastX || y != m_lastY) { m_lastX = x; m_lastY = y; if (index >= 0 && index < m_pixels.Length) { if (m_pixelVs[index] < 0f) { m_pixelVs[index] = 0f; } else { m_pixelVs[index] = m_pixelVs[index] + m_increment; } Vector3 c = Vector3.Lerp(new Vector3(0, 1, 0), new Vector3(1, 1, 1), m_pixelVs[index]); m_pixels[index].r = (byte)(int)(c.x * 255); m_pixels[index].g = (byte)(int)(c.y * 255); m_pixels[index].b = (byte)(int)(c.z * 255); m_pixels[index].a = 255; } } }
private void UpdateController() { #region Axis Code UpdateHighlight(RendererAxisLeft, Mathf.Abs(OuyaExampleCommon.GetAxis(OuyaSDK.KeyEnum.AXIS_LSTICK_X, OuyaExampleCommon.Player)) > 0.25f || Mathf.Abs(OuyaExampleCommon.GetAxis(OuyaSDK.KeyEnum.AXIS_LSTICK_Y, OuyaExampleCommon.Player)) > 0.25f); RendererAxisLeft.transform.localRotation = Quaternion.Euler(OuyaExampleCommon.GetAxis(OuyaSDK.KeyEnum.AXIS_LSTICK_Y, OuyaExampleCommon.Player) * 15, 0, OuyaExampleCommon.GetAxis(OuyaSDK.KeyEnum.AXIS_LSTICK_X, OuyaExampleCommon.Player) * 15); UpdateHighlight(RendererAxisRight, Mathf.Abs(OuyaExampleCommon.GetAxis(OuyaSDK.KeyEnum.AXIS_RSTICK_X, OuyaExampleCommon.Player)) > 0.25f || Mathf.Abs(OuyaExampleCommon.GetAxis(OuyaSDK.KeyEnum.AXIS_RSTICK_Y, OuyaExampleCommon.Player)) > 0.25f); RendererAxisRight.transform.localRotation = Quaternion.Euler(OuyaExampleCommon.GetAxis(OuyaSDK.KeyEnum.AXIS_RSTICK_Y, OuyaExampleCommon.Player) * 15, 0, OuyaExampleCommon.GetAxis(OuyaSDK.KeyEnum.AXIS_RSTICK_X, OuyaExampleCommon.Player) * 15); RendererLT.transform.localRotation = Quaternion.Euler(OuyaExampleCommon.GetAxis(OuyaSDK.KeyEnum.BUTTON_LT, OuyaExampleCommon.Player) * -15, 0, 0); RendererRT.transform.localRotation = Quaternion.Euler(OuyaExampleCommon.GetAxis(OuyaSDK.KeyEnum.BUTTON_RT, OuyaExampleCommon.Player) * -15, 0, 0); if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_L3, OuyaExampleCommon.Player)) { RendererAxisLeft.transform.localPosition = Vector3.Lerp(RendererAxisLeft.transform.localPosition, new Vector3(5.503977f, 0.75f, -3.344945f), Time.fixedDeltaTime); } else { RendererAxisLeft.transform.localPosition = Vector3.Lerp(RendererAxisLeft.transform.localPosition, new Vector3(5.503977f, 1.127527f, -3.344945f), Time.fixedDeltaTime); } if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_R3, OuyaExampleCommon.Player)) { RendererAxisRight.transform.localPosition = Vector3.Lerp(RendererAxisRight.transform.localPosition, new Vector3(-2.707688f, 0.75f, -1.354063f), Time.fixedDeltaTime); } else { RendererAxisRight.transform.localPosition = Vector3.Lerp(RendererAxisRight.transform.localPosition, new Vector3(-2.707688f, 1.11295f, -1.354063f), Time.fixedDeltaTime); } #endregion #region Button Code #region BUTTONS O - A //Check O button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_O, OuyaExampleCommon.Player)) { UpdateHighlight(RendererButtonO, true, true); } else { UpdateHighlight(RendererButtonO, false, true); } //Check U button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_U, OuyaExampleCommon.Player)) { UpdateHighlight(RendererButtonU, true, true); } else { UpdateHighlight(RendererButtonU, false, true); } //Check Y button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_Y, OuyaExampleCommon.Player)) { UpdateHighlight(RendererButtonY, true, true); } else { UpdateHighlight(RendererButtonY, false, true); } //Check A button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_A, OuyaExampleCommon.Player)) { UpdateHighlight(RendererButtonA, true, true); } else { UpdateHighlight(RendererButtonA, false, true); } //Check L3 button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_L3, OuyaExampleCommon.Player)) { UpdateHighlight(RendererAxisLeft, true, true); } else { UpdateHighlight(RendererAxisLeft, false, true); } //Check R3 button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_R3, OuyaExampleCommon.Player)) { UpdateHighlight(RendererAxisRight, true, true); } else { UpdateHighlight(RendererAxisRight, false, true); } #endregion #region Bumpers //Check LB button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_LB, OuyaExampleCommon.Player)) { UpdateHighlight(RendererLB, true, true); } else { UpdateHighlight(RendererLB, false, true); } //Check RB button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_RB, OuyaExampleCommon.Player)) { UpdateHighlight(RendererRB, true, true); } else { UpdateHighlight(RendererRB, false, true); } #endregion #region triggers //Check LT button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_LT, OuyaExampleCommon.Player)) { UpdateHighlight(RendererLT, true, true); } else { UpdateHighlight(RendererLT, false, true); } //Check RT button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_RT, OuyaExampleCommon.Player)) { UpdateHighlight(RendererRT, true, true); } else { UpdateHighlight(RendererRT, false, true); } #endregion #region DPAD //Check DPAD UP button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_DPAD_UP, OuyaExampleCommon.Player)) { UpdateHighlight(RendererDpadUp, true, true); } else { UpdateHighlight(RendererDpadUp, false, true); } //Check DPAD DOWN button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN, OuyaExampleCommon.Player)) { UpdateHighlight(RendererDpadDown, true, true); } else { UpdateHighlight(RendererDpadDown, false, true); } //Check DPAD LEFT button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT, OuyaExampleCommon.Player)) { UpdateHighlight(RendererDpadLeft, true, true); } else { UpdateHighlight(RendererDpadLeft, false, true); } //Check DPAD RIGHT button for down state if (OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT, OuyaExampleCommon.Player)) { UpdateHighlight(RendererDpadRight, true, true); } else { UpdateHighlight(RendererDpadRight, false, true); } #endregion #endregion }
void Update() { if (m_timerCreate < DateTime.Now) { m_timerCreate = DateTime.Now + TimeSpan.FromMilliseconds(NoteTimeToCreate); int index = Random.Range(0, Lanes.Count); CreateNote(Lanes[index]); } bool lower = OuyaExampleCommon.GetButton(OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_LOWER, OuyaSDK.OuyaPlayer.player1); float strum = OuyaExampleCommon.GetAxis(OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_STRUM, OuyaSDK.OuyaPlayer.player1); bool strumChanged = LastStrum != strum; LastStrum = strum; foreach (CubeLaneItem item in Lanes) { // cache the button state LastPressed[item.LaneButton] = OuyaExampleCommon.GetButton(item.LaneButton, OuyaSDK.OuyaPlayer.player1); } List <NoteItem> removeList = new List <NoteItem>(); foreach (NoteItem note in Notes) { if (note.EndTime < DateTime.Now) { removeList.Add(note); continue; } float elapsed = (float)(DateTime.Now - note.StartTime).TotalMilliseconds; note.Instance.transform.position = Vector3.Lerp( note.Parent.StartPosition.transform.position, note.Parent.EndPosition.transform.position, elapsed / (float)NoteTimeToLive); bool inRange = Mathf.Abs(TrackEnd.position.z - note.Instance.transform.position.z) <= 16; bool afterRange = (note.Instance.transform.position.z - 8) < TrackEnd.position.z; if (inRange) { (note.Instance.renderer as MeshRenderer).material.color = Color.white; } else if (afterRange) { (note.Instance.renderer as MeshRenderer).material.color = new Color(0, 0, 0, 0.75f); } // use available press of the lane button if (LastPressed.ContainsKey(note.Parent.LaneButton) && LastPressed[note.Parent.LaneButton]) { if ( //check if note is across the finish line inRange && //check if lower was used (!note.UseLower || lower == note.UseLower) && // check if strum was used strumChanged && strum != 0f) { //use button press LastPressed[note.Parent.LaneButton] = false; //hit the note if (note.FadeTime == DateTime.MinValue) { note.FadeTime = DateTime.Now + TimeSpan.FromMilliseconds(NoteTimeToFade); note.Parent.LaneSound.volume = 1; } } } if (note.FadeTime != DateTime.MinValue) { if (note.FadeTime < DateTime.Now) { removeList.Add(note); continue; } elapsed = (float)(note.FadeTime - DateTime.Now).TotalMilliseconds; (note.Instance.renderer as MeshRenderer).material.color = Color.Lerp(note.Parent.LaneColor, Color.clear, 1f - elapsed / (float)NoteTimeToFade); note.Instance.transform.localScale = Vector3.Lerp(note.Instance.transform.localScale, note.Parent.StartPosition.transform.localScale * 2, elapsed / (float)NoteTimeToFade); } } foreach (NoteItem note in removeList) { Notes.Remove(note); DestroyNote(note); } }