Got em inputs in nightwalk gba to work
This commit is contained in:
parent
fc07d6a170
commit
4f904c99c2
|
|
@ -680,6 +680,7 @@ MonoBehaviour:
|
||||||
scheduledInputs: []
|
scheduledInputs: []
|
||||||
firstEnable: 0
|
firstEnable: 0
|
||||||
playYan: {fileID: 1314280037714680423}
|
playYan: {fileID: 1314280037714680423}
|
||||||
|
platformHandler: {fileID: 6715217060937385611}
|
||||||
--- !u!1 &4465275889429203320
|
--- !u!1 &4465275889429203320
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ GameObject:
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!4 &9016694733661613840
|
--- !u!4 &9016694733661613840
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
public static AgbNightWalk instance;
|
public static AgbNightWalk instance;
|
||||||
[SerializeField] private AgbPlayYan playYan;
|
[SerializeField] private AgbPlayYan playYan;
|
||||||
|
[SerializeField] private AgbPlatformHandler platformHandler;
|
||||||
[NonSerialized] public double countInBeat = -1;
|
[NonSerialized] public double countInBeat = -1;
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
|
|
@ -47,11 +48,13 @@ namespace HeavenStudio.Games
|
||||||
public override void OnGameSwitch(double beat)
|
public override void OnGameSwitch(double beat)
|
||||||
{
|
{
|
||||||
SetCountInBeat(beat);
|
SetCountInBeat(beat);
|
||||||
|
platformHandler.SpawnPlatforms(beat);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnPlay(double beat)
|
public override void OnPlay(double beat)
|
||||||
{
|
{
|
||||||
SetCountInBeat(beat);
|
SetCountInBeat(beat);
|
||||||
|
platformHandler.SpawnPlatforms(beat);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetCountInBeat(double beat)
|
private void SetCountInBeat(double beat)
|
||||||
|
|
@ -85,8 +88,11 @@ namespace HeavenStudio.Games
|
||||||
tempEvents.Add(countIn);
|
tempEvents.Add(countIn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tempEvents.Sort((x, y) => x.beat.CompareTo(y.beat));
|
if (tempEvents.Count > 0)
|
||||||
countInBeat = tempEvents[tempEvents.Count - 1].beat;
|
{
|
||||||
|
tempEvents.Sort((x, y) => x.beat.CompareTo(y.beat));
|
||||||
|
countInBeat = tempEvents[tempEvents.Count - 1].beat;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
UpdateBalloons(beat);
|
UpdateBalloons(beat);
|
||||||
|
|
@ -136,6 +142,7 @@ namespace HeavenStudio.Games
|
||||||
tempEvents.Add(countIn);
|
tempEvents.Add(countIn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (tempEvents.Count == 0) return true;
|
||||||
tempEvents.Sort((x, y) => x.beat.CompareTo(y.beat));
|
tempEvents.Sort((x, y) => x.beat.CompareTo(y.beat));
|
||||||
return countInEntity == tempEvents[tempEvents.Count - 1];
|
return countInEntity == tempEvents[tempEvents.Count - 1];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,62 @@ namespace HeavenStudio.Games.Scripts_AgbNightWalk
|
||||||
{
|
{
|
||||||
public class AgbPlatform : MonoBehaviour
|
public class AgbPlatform : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
private double startBeat;
|
||||||
|
private double endBeat;
|
||||||
|
private AgbPlatformHandler handler;
|
||||||
|
public void Init(double beat, double hitBeat, AgbPlatformHandler handlerToPut)
|
||||||
|
{
|
||||||
|
handler = handlerToPut;
|
||||||
|
startBeat = beat;
|
||||||
|
endBeat = hitBeat;
|
||||||
|
if (startBeat < endBeat)
|
||||||
|
{
|
||||||
|
AgbNightWalk.instance.ScheduleInput(startBeat, endBeat - startBeat, InputType.STANDARD_DOWN, Just, Miss, Empty);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
var cond = Conductor.instance;
|
||||||
|
if (cond.isPlaying && !cond.isPaused)
|
||||||
|
{
|
||||||
|
float normalizedBeat = cond.GetPositionFromBeat(startBeat, endBeat - startBeat);
|
||||||
|
|
||||||
|
float newPosX = Mathf.LerpUnclamped(handler.playerXPos + (float)((endBeat - startBeat) * handler.platformDistance), handler.playerXPos, normalizedBeat);
|
||||||
|
|
||||||
|
transform.localPosition = new Vector3(newPosX, handler.defaultYPos);
|
||||||
|
|
||||||
|
if (cond.songPositionInBeats > endBeat + (handler.platformCount * 0.5f))
|
||||||
|
{
|
||||||
|
ResetInput();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResetInput()
|
||||||
|
{
|
||||||
|
double newStartBeat = endBeat + (handler.platformCount * 0.5f);
|
||||||
|
Init(newStartBeat, newStartBeat + (handler.platformCount * 0.5f), handler);
|
||||||
|
}
|
||||||
|
private void Just(PlayerActionEvent caller, float state)
|
||||||
|
{
|
||||||
|
if (state >= 1 || state <= -1)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Miss(PlayerActionEvent caller)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Empty(PlayerActionEvent caller) { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,36 @@ namespace HeavenStudio.Games.Scripts_AgbNightWalk
|
||||||
{
|
{
|
||||||
public class AgbPlatformHandler : MonoBehaviour
|
public class AgbPlatformHandler : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
private AgbNightWalk game;
|
||||||
[Header("Properties")]
|
[Header("Properties")]
|
||||||
[SerializeField] private AgbPlatform platformRef;
|
[SerializeField] private AgbPlatform platformRef;
|
||||||
public float defaultYPos = -11.76f;
|
public float defaultYPos = -11.76f;
|
||||||
public float platformDistance = 3.80f;
|
public float platformDistance = 3.80f;
|
||||||
public float playerXPos = -6.78f;
|
public float playerXPos = -6.78f;
|
||||||
|
[Range(1, 100)]
|
||||||
|
public int platformCount = 20;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
game = AgbNightWalk.instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SpawnPlatforms(double beat)
|
||||||
|
{
|
||||||
|
if (game.countInBeat != -1)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < platformCount; i++)
|
||||||
|
{
|
||||||
|
AgbPlatform platform = Instantiate(platformRef, transform);
|
||||||
|
platform.Init(game.countInBeat + i - (platformCount * 0.5), game.countInBeat + i + 8, this);
|
||||||
|
platform.gameObject.SetActive(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue