public long keyDown(StandardKeyCodes keyCode) { if (downs.ContainsKey(keyCode)) { long time = downs [keyCode]; downs.Remove(keyCode); return(time); } else { return(-1); } }
public long keyUp(StandardKeyCodes keyCode) { if (ups.ContainsKey(keyCode)) { long time = ups [keyCode]; ups.Remove(keyCode); return(time); } else { return(-1); } }
public long GetKeyUp(StandardKeyCodes code) { if (keyUps.ContainsKey(code)) { long time = keyUps [code]; keyUps.Remove(code); return(time); } else { return(-1); } }
void PollKeysMac() { while (UseRealTimeInput) { averageTimer.startRecording(); // UnityEngine.Debug.Log (timeMaster.GetTime()); // bool aPressed = CGEventSourceKeyState (1, 0); // UnityEngine.Debug.Log (CGEventSourceKeyState(1, 0)); // stopwatch.Reset(); // if (listener != null) { for (int i = 0; i < trackedKeys.Count; i++) { StandardKeyCodes keyCodeStandard = trackedKeys [i]; int keyCode = KeyConverter.ToMacNative(keyCodeStandard); bool keyPressed = CGEventSourceKeyState(1, keyCode); bool prevKeyStatus = keyStates [keyCode]; // UnityEngine.Debug.Log (keyPressed); if (keyPressed && !prevKeyStatus) //going from false to true // listener.onKeyDown (keyCode, timeMaster.GetTime()); { keyDowns[keyCodeStandard] = timeMaster.GetTime(); } else if (!keyPressed && prevKeyStatus) { // listener.onKeyUp (keyCode, timeMaster.GetTime()); keyUps[keyCodeStandard] = timeMaster.GetTime(); } keyStates [keyCode] = keyPressed; } long avg = averageTimer.stopRecording(); if (avg != -1) { // UnityEngine.Debug.Log(avg); if (debugPanel) { debugPanel.log("Input", avg.ToString()); } // debugPanel.log ("Input", avg.ToString()); } Thread.Sleep(sleepTime); } }
// Update is called once per frame void Update() { for (int i = 0; i < Input.touchCount; i++) { Touch touch = Input.GetTouch(i); Vector2 pos = touch.position; float x = Camera.main.ScreenToWorldPoint(new Vector3(pos.x, pos.y, 0)).x; StandardKeyCodes key = KeyMappings.reverseMap [getControl(x)]; Debug.LogFormat("Key {0}", key); if (touch.phase == TouchPhase.Began) { downs [key] = timeMaster.GetTime(); Debug.LogFormat("X down {0}", x); } else if (touch.phase == TouchPhase.Ended) { ups [key] = timeMaster.GetTime(); Debug.LogFormat("X up {0}", x); } } }
public void processKey(StandardKeyCodes keycode, long time, bool keyDown = true) { if (patternMaster.isPlaying()) { StandardControls control = KeyMappings.keyToControl(keycode); MusicEventTypes musicEventType = controlToEventType [control]; //find first matching event // int index = events[eventType].FindIndex (e => actionMatches(eventType, e)); // Debug.Log (events[0]); var relevantEvents = events; if (!keyDown) //keyup { relevantEvents = releaseEvents; } if (relevantEvents [musicEventType].Count > 0) { MusicEvent e = relevantEvents[musicEventType][0]; if (keyDown) { long expectedTime = patternMaster.absTime(e.startTime); long delta = expectedTime - time; long adjustedError = delta + latencyAdjustment; //only consider if within scoring range if (delta < ScorableThreshold) { // Debug.LogFormat ("Delta {0}", delta); // Debug.LogFormat ("Adjusted delta {0}", adjustedError); ScoreLevels score = ReportQuality(adjustedError); Messenger <ScoreLevels> .Invoke(MessengerKeys.EVENT_SCORE, score); panel.log("Score", scoreToString [score]); // if (mode == ScoreCalculatorMode.Calibration) { // calibrator.addDelta ((int)delta); // } relevantEvents [musicEventType].RemoveAt(0); Messenger <MusicEvent> .Invoke(MessengerKeys.EVENT_HIT, e); if (e.isHeldEvent()) { releaseEventActive [e] = true; } } } else { long expectedUpTime = patternMaster.absTime(e.endTime); long delta = expectedUpTime - time; long adjusted = delta + latencyAdjustment; //only register relases if already down if (releaseEventActive.ContainsKey(e)) { ScoreLevels score = ReportQuality(adjusted); // Debug.LogFormat ("Release {0}", adjusted); relevantEvents [musicEventType].RemoveAt(0); Messenger <ScoreLevels> .Invoke(MessengerKeys.EVENT_SCORE, score); Messenger <MusicEvent> .Invoke(MessengerKeys.EVENT_HELD_RELEASED, e); } } } } }
public static StandardControls keyToControl(StandardKeyCodes key) { return(map[key]); }
public static int ToMacNative(StandardKeyCodes key) { return(MacNative[key]); }
public static KeyCode ToUnityKey(StandardKeyCodes key) { return(UnityKeyMap[key]); }
void Update() { foreach (StandardControls control in controls) { StandardKeyCodes key = KeyMappings.controlToKey(control); long downTime = inputManager.GetKeyDown(key); if (downTime >= 0) { OnKeyDown(key, downTime); } long upTime = inputManager.GetKeyUp(key); if (upTime >= 0) { OnKeyUp(key, upTime); } } #if UNITY_IOS //mobile only foreach (StandardControls control in controls) { StandardKeyCodes key = KeyMappings.controlToKey(control); long downTime = mobileInput.keyDown(key); if (downTime >= 0) { OnKeyDown(key, downTime); } long upTime = mobileInput.keyUp(key); if (upTime >= 0) { OnKeyUp(key, upTime); } } #endif //WARN: This code is far more complex then it has to be if (Input.GetKeyDown(KeyCode.Return)) { if (!patternMaster.isPlaying()) { //order matters here. Once invoke is called, paused may be modified bool paused = patternMaster.isPaused(); Messenger.Invoke(MessengerKeys.TOGGLE_MENU); if (paused) { ResumeGame(); } else { BeginGame(); } } } ; }
public KeyEvent(StandardKeyCodes keycode, long time) { this.keycode = keycode; this.time = time; }
public void OnKeyUp(StandardKeyCodes key, long time) { Messenger <StandardControls> .Invoke(MessengerKeys.EVENT_PAD_RELEASED, KeyMappings.keyToControl(key)); scoreCalculator.processKey(key, time, false); }