Commit 97d54097 authored by 16이상민's avatar 16이상민

Refactoring & Previous code integration complete

parent ea1802aa
...@@ -24,23 +24,23 @@ public class Guard : MotionNote ...@@ -24,23 +24,23 @@ public class Guard : MotionNote
{ {
case "BG": case "BG":
hand = Hand.Both; hand = Hand.Both;
image = LoadNewSprite("BG"); image = LoadNewSprite("Assets/MotionNotes/BG.png");
prepare = MotionState.GUARD_BASE_LEFT | MotionState.GUARD_BASE_RIGHT prepare = MotionState.GUARD_BASE_LEFT | MotionState.GUARD_BASE_RIGHT
| MotionState.HAND_MOVE_DOWN_LEFT | MotionState.HAND_MOVE_DOWN_RIGHT; | MotionState.HAND_MOVE_DOWN_LEFT | MotionState.HAND_MOVE_DOWN_RIGHT;
done = MotionState.GUARD_BASE_LEFT | MotionState.GUARD_BASE_RIGHT done = MotionState.GUARD_BASE_LEFT | MotionState.GUARD_BASE_RIGHT
| MotionState.HAND_MOVE_UP_LEFT | MotionState.HAND_MOVE_UP_RIGHT; | MotionState.HAND_MOVE_UP_LEFT | MotionState.HAND_MOVE_UP_RIGHT;
break; break;
case "LG": case "LG":
hand = Hand.Left; hand = Hand.Left;
image = LoadNewSprite("LG"); image = LoadNewSprite("Assets/MotionNotes/LG.png");
prepare = MotionState.GUARD_BASE_LEFT prepare = MotionState.GUARD_BASE_LEFT
| MotionState.HAND_MOVE_DOWN_LEFT; | MotionState.HAND_MOVE_DOWN_LEFT;
done = MotionState.GUARD_BASE_LEFT done = MotionState.GUARD_BASE_LEFT
| MotionState.HAND_MOVE_UP_LEFT; | MotionState.HAND_MOVE_UP_LEFT;
break; break;
case "RG": case "RG":
hand = Hand.Right; hand = Hand.Right;
image = LoadNewSprite("RG"); image = LoadNewSprite("Assets/MotionNotes/RG.png");
prepare = MotionState.GUARD_BASE_RIGHT prepare = MotionState.GUARD_BASE_RIGHT
| MotionState.HAND_MOVE_DOWN_RIGHT; | MotionState.HAND_MOVE_DOWN_RIGHT;
done = MotionState.GUARD_BASE_RIGHT done = MotionState.GUARD_BASE_RIGHT
......
...@@ -24,17 +24,17 @@ public class HandDown : MotionNote ...@@ -24,17 +24,17 @@ public class HandDown : MotionNote
{ {
case "BD": case "BD":
hand = Hand.Both; hand = Hand.Both;
image = LoadNewSprite("BD"); image = LoadNewSprite("Assets/MotionNotes/BD.png");
done = MotionState.HAND_DOWN_LEFT | MotionState.HAND_DOWN_RIGHT; done = MotionState.HAND_DOWN_LEFT | MotionState.HAND_DOWN_RIGHT;
break; break;
case "LD": case "LD":
hand = Hand.Left; hand = Hand.Left;
image = LoadNewSprite("LD"); image = LoadNewSprite("Assets/MotionNotes/LD.png");
done = MotionState.HAND_DOWN_LEFT; done = MotionState.HAND_DOWN_LEFT;
break; break;
case "RD": case "RD":
hand = Hand.Right; hand = Hand.Right;
image = LoadNewSprite("RD"); image = LoadNewSprite("Assets/MotionNotes/RD.png");
done = MotionState.HAND_DOWN_RIGHT; done = MotionState.HAND_DOWN_RIGHT;
break; break;
} }
...@@ -43,7 +43,7 @@ public class HandDown : MotionNote ...@@ -43,7 +43,7 @@ public class HandDown : MotionNote
{ {
} }
public override void Checkpoint() public override void Checkpoint()
{ {
IsChecked = true; IsChecked = true;
} }
......
...@@ -24,17 +24,17 @@ public class HandUp : MotionNote ...@@ -24,17 +24,17 @@ public class HandUp : MotionNote
{ {
case "BU": case "BU":
hand = Hand.Both; hand = Hand.Both;
image = LoadNewSprite("BU"); image = LoadNewSprite("Assets/MotionNotes/BU.png");
done = MotionState.HAND_UP_LEFT | MotionState.HAND_UP_RIGHT; done = MotionState.HAND_UP_LEFT | MotionState.HAND_UP_RIGHT;
break; break;
case "LU": case "LU":
hand = Hand.Left; hand = Hand.Left;
image = LoadNewSprite("LU"); image = LoadNewSprite("Assets/MotionNotes/LU.png");
done = MotionState.HAND_UP_LEFT; done = MotionState.HAND_UP_LEFT;
break; break;
case "RU": case "RU":
hand = Hand.Right; hand = Hand.Right;
image = LoadNewSprite("RU"); image = LoadNewSprite("Assets/MotionNotes/RU.png");
done = MotionState.HAND_UP_RIGHT; done = MotionState.HAND_UP_RIGHT;
break; break;
} }
...@@ -43,7 +43,7 @@ public class HandUp : MotionNote ...@@ -43,7 +43,7 @@ public class HandUp : MotionNote
{ {
} }
public override void Checkpoint() public override void Checkpoint()
{ {
IsChecked = true; IsChecked = true;
} }
......
...@@ -24,17 +24,17 @@ public class Headphone : MotionNote ...@@ -24,17 +24,17 @@ public class Headphone : MotionNote
{ {
case "BH": case "BH":
hand = Hand.Both; hand = Hand.Both;
image = LoadNewSprite("BH"); image = LoadNewSprite("Assets/MotionNotes/BH.png");
done = MotionState.HEADPHONE_LEFT | MotionState.HEADPHONE_RIGHT; done = MotionState.HEADPHONE_LEFT | MotionState.HEADPHONE_RIGHT;
break; break;
case "LH": case "LH":
hand = Hand.Left; hand = Hand.Left;
image = LoadNewSprite("LH"); image = LoadNewSprite("Assets/MotionNotes/LH.png");
done = MotionState.HEADPHONE_LEFT; done = MotionState.HEADPHONE_LEFT;
break; break;
case "RH": case "RH":
hand = Hand.Right; hand = Hand.Right;
image = LoadNewSprite("RH"); image = LoadNewSprite("Assets/MotionNotes/RH.png");
done = MotionState.HEADPHONE_RIGHT; done = MotionState.HEADPHONE_RIGHT;
break; break;
} }
......
...@@ -24,22 +24,40 @@ public class PushUp : MotionNote ...@@ -24,22 +24,40 @@ public class PushUp : MotionNote
{ {
case "BP": case "BP":
hand = Hand.Both; hand = Hand.Both;
image = LoadNewSprite("BP"); image = LoadNewSprite("Assets/MotionNotes/BP.png");
prepare = MotionState.HAND_MOVE_UP_LEFT | MotionState.HAND_MOVE_UP_RIGHT; prepare = MotionState.HAND_MOVE_UP_LEFT | MotionState.HAND_MOVE_UP_RIGHT;
done = MotionState.HAND_MOVE_DOWN_LEFT | MotionState.HAND_MOVE_DOWN_RIGHT; done = MotionState.HAND_MOVE_DOWN_LEFT | MotionState.HAND_MOVE_DOWN_RIGHT;
break; break;
case "LP": case "LP":
hand = Hand.Left; hand = Hand.Left;
image = LoadNewSprite("LP"); image = LoadNewSprite("Assets/MotionNotes/LP.png");
prepare = MotionState.HAND_MOVE_UP_LEFT; prepare = MotionState.HAND_MOVE_UP_LEFT;
done = MotionState.HAND_MOVE_DOWN_LEFT; done = MotionState.HAND_MOVE_DOWN_LEFT;
break; break;
case "RP": case "RP":
hand = Hand.Right; hand = Hand.Right;
image = LoadNewSprite("RP"); image = LoadNewSprite("Assets/MotionNotes/RP.png");
prepare = MotionState.HAND_MOVE_UP_RIGHT; prepare = MotionState.HAND_MOVE_UP_RIGHT;
done = MotionState.HAND_MOVE_DOWN_RIGHT; done = MotionState.HAND_MOVE_DOWN_RIGHT;
break; break;
case "BK":
hand = Hand.Both;
image = LoadNewSprite("Assets/MotionNotes/BK.png");
prepare = MotionState.HAND_MOVE_UP_LEFT | MotionState.HAND_MOVE_UP_RIGHT | MotionState.JUMP_PREPARE;
done = MotionState.HAND_MOVE_DOWN_LEFT | MotionState.HAND_MOVE_DOWN_RIGHT | MotionState.JUMP_DONE;
break;
case "LK":
hand = Hand.Left;
image = LoadNewSprite("Assets/MotionNotes/LK.png");
prepare = MotionState.HAND_MOVE_UP_LEFT | MotionState.JUMP_PREPARE;
done = MotionState.HAND_MOVE_DOWN_LEFT | MotionState.JUMP_DONE;
break;
case "RK":
hand = Hand.Right;
image = LoadNewSprite("Assets/MotionNotes/RK.png");
prepare = MotionState.HAND_MOVE_UP_RIGHT | MotionState.JUMP_PREPARE;
done = MotionState.HAND_MOVE_DOWN_RIGHT | MotionState.JUMP_DONE;
break;
} }
} }
public PushUp(float start, float end = 0f) : base(start, end) public PushUp(float start, float end = 0f) : base(start, end)
......
This diff is collapsed.
...@@ -12,7 +12,7 @@ public class Judge ...@@ -12,7 +12,7 @@ public class Judge
new Judge("MISS") { Color = Color.red, IsBreak = true } new Judge("MISS") { Color = Color.red, IsBreak = true }
}; };
internal Judge() private Judge()
{ {
ButtonTimingRange = 0f; ButtonTimingRange = 0f;
Score = 0; Score = 0;
...@@ -20,7 +20,7 @@ public class Judge ...@@ -20,7 +20,7 @@ public class Judge
Color = Color.black; Color = Color.black;
} }
internal Judge(string name) : this() { Name = name; } private Judge(string name) : this() { Name = name; }
public string Name { get; private set; } public string Name { get; private set; }
...@@ -33,9 +33,9 @@ public class Judge ...@@ -33,9 +33,9 @@ public class Judge
public static readonly public static readonly
float MaxButtonTimingRange = JudgeList[2].ButtonTimingRange; float MaxButtonTimingRange = JudgeList[2].ButtonTimingRange;
public static Judge TestJudge(Note note, float elapsedTime, bool end = false, bool test = false) public static Judge TestJudge(Note note, float elapsedTime, bool isLong = false, bool test = false)
{ {
float timing = end ? note.EndTiming : note.StartTiming; float timing = isLong ? note.EndTiming : note.StartTiming;
float difference = elapsedTime - timing; float difference = elapsedTime - timing;
if (test) if (test)
...@@ -45,10 +45,4 @@ public class Judge ...@@ -45,10 +45,4 @@ public class Judge
return result.Count == 0 ? JudgeList.Last() : result[0]; return result.Count == 0 ? JudgeList.Last() : result[0];
} }
public static bool IsNonEmptyMiss(Note note, float elapsedTime, bool end = false)
{
float timing = end ? note.EndTiming : note.StartTiming;
return elapsedTime - timing > MaxButtonTimingRange;
}
} }
\ No newline at end of file
This diff is collapsed.
...@@ -27,10 +27,7 @@ public class MotionView : MonoBehaviour ...@@ -27,10 +27,7 @@ public class MotionView : MonoBehaviour
{ {
var tracked = body.Where(x => x != null && x.IsTracked).ToList(); var tracked = body.Where(x => x != null && x.IsTracked).ToList();
if (tracked.Count() == 0 || tracked[0].Joints == null) if (tracked.Count() == 0 || tracked[0].Joints == null)
{
discriminator.Initialize();
return MotionState.UNKNOWN; return MotionState.UNKNOWN;
}
discriminator.Update(tracked[0]); discriminator.Update(tracked[0]);
...@@ -67,8 +64,6 @@ internal class MotionDiscriminator ...@@ -67,8 +64,6 @@ internal class MotionDiscriminator
{ {
DistItvExtractor extractor; DistItvExtractor extractor;
bool initialized = true;
private MotionState _Motion; private MotionState _Motion;
public MotionState Motion public MotionState Motion
...@@ -84,19 +79,17 @@ internal class MotionDiscriminator ...@@ -84,19 +79,17 @@ internal class MotionDiscriminator
Initialize(); Initialize();
} }
public void Initialize() private void Initialize()
{ {
_Motion = MotionState.UNKNOWN; _Motion = MotionState.UNKNOWN;
initialized = true;
} }
public void Update(KinectModule.IBody body) public void Update(KinectModule.IBody body)
{ {
extractor.Extract(body); extractor.Extract(body);
Initialize();
Determine(); Determine();
initialized = false;
} }
float Distance(CameraSpacePoint a, CameraSpacePoint b) float Distance(CameraSpacePoint a, CameraSpacePoint b)
...@@ -110,6 +103,7 @@ internal class MotionDiscriminator ...@@ -110,6 +103,7 @@ internal class MotionDiscriminator
{ {
Clap(); Clap();
Jump(); Jump();
Hurray();
HandMove(); HandMove();
GuardBase(); GuardBase();
HandUp(); HandUp();
...@@ -135,21 +129,21 @@ internal class MotionDiscriminator ...@@ -135,21 +129,21 @@ internal class MotionDiscriminator
void Jump() void Jump()
{ {
const float distPrepare = 0.05f, distDone = 0.0f; const float distPrepare = 0.05f, distDone = 0.0f;
if (initialized)
return;
if (extractor.DistSpine < distPrepare) if (extractor.DistSpine < distPrepare)
_Motion |= MotionState.JUMP_PREPARE; _Motion |= MotionState.JUMP_PREPARE;
else if (extractor.DistSpine > distDone) else if (extractor.DistSpine > distDone)
_Motion |= MotionState.JUMP_DONE; _Motion |= MotionState.JUMP_DONE;
} }
void HandMove() void Hurray()
{ {
if (initialized || extractor.DistHandBaseHead <= 0.0f) if (extractor.DistHandBaseHead > 0)
return; _Motion |= MotionState.HURRAY;
}
void HandMove()
{
if (extractor.DistHandLeft > 0) if (extractor.DistHandLeft > 0)
_Motion |= MotionState.HAND_MOVE_UP_LEFT; _Motion |= MotionState.HAND_MOVE_UP_LEFT;
else if (extractor.DistHandLeft < 0) else if (extractor.DistHandLeft < 0)
......
...@@ -28,6 +28,21 @@ public class TrackManager : MonoBehaviour { ...@@ -28,6 +28,21 @@ public class TrackManager : MonoBehaviour {
private GameObject selected = null; private GameObject selected = null;
private KeyDown Pressed
{
get
{
if (Input.GetKeyDown(KeyCode.DownArrow))
return KeyDown.Down;
if (Input.GetKeyDown(KeyCode.UpArrow))
return KeyDown.Up;
return KeyDown.None;
}
}
bool IsPressedStart
{ get { return InputManager.Instance.Status == ButtonStatus.Pressed; } }
// Use this for initialization // Use this for initialization
void Start() void Start()
{ {
...@@ -41,23 +56,32 @@ public class TrackManager : MonoBehaviour { ...@@ -41,23 +56,32 @@ public class TrackManager : MonoBehaviour {
// Update is called once per frame // Update is called once per frame
void Update() void Update()
{ {
if (trackList.transform.childCount < 0) ScrollTrackList();
return;
if (Input.GetKeyDown(KeyCode.DownArrow)) if (IsPressedStart)
{
trackList.transform.GetChild(0).SetAsLastSibling();
TrackBrowse();
}
if (Input.GetKeyDown(KeyCode.UpArrow))
{
trackList.transform.GetChild(trackList.transform.childCount - 1).SetAsFirstSibling();
TrackBrowse();
}
if (InputManager.Instance.IsButtonPressed)
StartTrack(); StartTrack();
} }
void ScrollTrackList()
{
if (Pressed == KeyDown.Down)
DownScroll();
else if (Pressed == KeyDown.Up)
UpScroll();
}
void UpScroll()
{
trackList.transform.GetChild(trackList.transform.childCount - 1).SetAsFirstSibling();
TrackBrowse();
}
void DownScroll()
{
trackList.transform.GetChild(0).SetAsLastSibling();
TrackBrowse();
}
IEnumerable<TrackInfo> GenerateTrackInfos() IEnumerable<TrackInfo> GenerateTrackInfos()
{ {
return new DirectoryInfo("Assets/Tracks") return new DirectoryInfo("Assets/Tracks")
...@@ -117,4 +141,11 @@ public class TrackManager : MonoBehaviour { ...@@ -117,4 +141,11 @@ public class TrackManager : MonoBehaviour {
GameManager.Instance.SceneTransition("InGame"); GameManager.Instance.SceneTransition("InGame");
} }
private enum KeyDown
{
Up,
Down,
None
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment