Fixed progress bar.

This commit is contained in:
Alex Huddleston 2018-04-26 22:58:14 -05:00
parent 98fbbedcae
commit 3339a851f8
3 changed files with 182 additions and 157 deletions

Binary file not shown.

View file

@ -9,178 +9,203 @@ using System.Text;
//Pretty much a copy of GetData...
namespace PedometerU.Tests {
public class GetGoals : MonoBehaviour {
public Image background;
private string[] items = { "circle_eye", "crazy_hair", "circle_head", "gap_mouth", "pig_nose", "crown" };
public class GetGoals : MonoBehaviour {
public Image background;
public Image fill;
private string[] items = { "circle_eye", "crazy_hair", "circle_head", "gap_mouth", "pig_nose", "crown" };
public Text goalText;
public string currentDayStr = System.DateTime.Now.ToString("MM/dd/yyyy");
public string goalDayStr = System.DateTime.Now.ToString("MM/dd/yyyy");
public string prefKey;
public Text goalText;
public string currentDayStr = System.DateTime.Now.ToString("MM/dd/yyyy");
public string goalDayStr = System.DateTime.Now.ToString("MM/dd/yyyy");
public string prefKey;
//Progress Bar...
public float barDisplay; //current progress
private Vector2 barPos;
private Vector2 barSize = new Vector2(725, 39);
//Progress Bar...
public float barDisplay; //current progress
private Vector2 barPos;
private Vector2 barSize = new Vector2(5000, 10);
//Pedometer
private Pedometer pedometer;
int userSteps;
int userPoints;
double userDistance;
int stepsGoal = 100;
public Text stepText;
public Text pointsText;
private int savedSteps;
private int savedPoints;
//Pedometer
private Pedometer pedometer;
int userSteps;
int userPoints;
double userDistance;
int stepsGoal = 100;
public Text stepText;
public Text pointsText;
private int savedSteps;
private int savedPoints;
void OnStep (int steps, double distance) {
userDistance = (distance * 3.28084);
userSteps = steps + savedSteps;
PlayerPrefs.SetInt("currentSteps",userSteps);
stepText.text = userSteps.ToString () + "/" + stepsGoal.ToString();
void OnStep (int steps, double distance) {
userDistance = (distance * 3.28084);
userSteps = steps + savedSteps;
PlayerPrefs.SetInt("currentSteps",userSteps);
stepText.text = userSteps.ToString () + "/" + stepsGoal.ToString();
userPoints = steps*5 + savedPoints;
PlayerPrefs.SetInt("totalPoints",userPoints);
pointsText.text = "Points: " + userPoints.ToString ();
}
private void OnDisable () {
// Release the pedometer
pedometer.Dispose();
pedometer = null;
}
//saved value from last session loads in on START
//write usersteps + saved val to pref in ONSTEP
void Start () {
savedSteps = PlayerPrefs.GetInt("currentSteps");
savedPoints = PlayerPrefs.GetInt("totalPoints");
// Create a new pedometer
pedometer = new Pedometer(OnStep);
// Reset UI
stepText.text = savedSteps.ToString () + "/" + stepsGoal.ToString();
if(PlayerPrefs.HasKey("totalPoints"))
{
pointsText.text = "Points: " + PlayerPrefs.GetInt("totalPoints").ToString ();
userPoints = steps*5 + savedPoints;
PlayerPrefs.SetInt("totalPoints",userPoints);
pointsText.text = "Points: " + userPoints.ToString ();
}
else
{
PlayerPrefs.SetInt("totalPoints", 0);
pointsText.text = "Points: " + PlayerPrefs.GetInt("totalPoints").ToString ();
private void OnDisable () {
// Release the pedometer
pedometer.Dispose();
pedometer = null;
}
userSteps = savedSteps;
userPoints = savedPoints;
//OnStep(savedSteps, 0);
Debug.Log(savedSteps);
//saved value from last session loads in on START
//write usersteps + saved val to pref in ONSTEP
//goalText.text = prefKey;
goalText.color = new Color(0f, 0f, 0f);
Debug.Log(background.rectTransform.anchoredPosition.x.ToString() + " " + background.rectTransform.anchoredPosition.y.ToString());
barPos = new Vector2(background.transform.position.x, 2135 - background.transform.position.y);
currentDayStr = System.DateTime.Now.ToString("MM/dd/yyyy");
goalDayStr = System.DateTime.Now.ToString("MM/dd/yyyy");
Debug.Log(goalDayStr);
if(prefKey == "daily")
savePersistantGoalDate("daily");
}
//Texture the progress bar using these parameters
public Texture2D emptyTex;
public Texture2D fullTex;
//on a button press? begin a goal?
void startGoal()
{
}
void savePersistantGoalDate(string key)
{
PlayerPrefs.SetString(key, goalDayStr);
}
bool checkNewDay(string key)
{
string checkDay = PlayerPrefs.GetString(key);
if(checkDay == currentDayStr)
return false;
return true;
}
//
void OnGUI() {
//draw the background:
GUI.BeginGroup(new Rect(barPos.x, barPos.y, barSize.x, barSize.y));
GUI.Box(new Rect(0,0, barSize.x, barSize.y), emptyTex);
//draw the filled-in part:
GUI.BeginGroup(new Rect(0,0, barSize.x * barDisplay, barSize.y));
GUI.Box(new Rect(0,0, barSize.x, barSize.y), fullTex);
GUI.EndGroup();
GUI.EndGroup();
}
void Update() {
//needs current points counting toward this goal (daily?)
//needs the total required points for this goal
currentDayStr = System.DateTime.Now.ToString("MM/dd/yyyy");
//barDisplay = Time.time*0.05f; //put actual progress here (current/total)
barDisplay = (float)userSteps/(float)stepsGoal;
//failed to complete goal
if(currentDayStr != goalDayStr)
void Start ()
{
Debug.Log(currentDayStr);
fill.type = Image.Type.Filled;
fill.fillMethod = Image.FillMethod.Horizontal;
fill.type = Image.Type.Sliced;
savedSteps = PlayerPrefs.GetInt("currentSteps");
savedPoints = PlayerPrefs.GetInt("totalPoints");
// Create a new pedometer
pedometer = new Pedometer(OnStep);
// Reset UI
stepText.text = savedSteps.ToString () + "/" + stepsGoal.ToString();
if(PlayerPrefs.HasKey("totalPoints"))
{
pointsText.text = "Points: " + PlayerPrefs.GetInt("totalPoints").ToString ();
}
else
{
PlayerPrefs.SetInt("totalPoints", 0);
pointsText.text = "Points: " + PlayerPrefs.GetInt("totalPoints").ToString ();
}
userSteps = savedSteps;
userPoints = savedPoints;
//OnStep(savedSteps, 0);
Debug.Log(savedSteps);
//goalText.text = prefKey;
goalText.color = new Color(0f, 0f, 0f);
Debug.Log(background.rectTransform.anchoredPosition.x.ToString() + " " + background.rectTransform.anchoredPosition.y.ToString());
barPos = new Vector2(background.transform.position.x, 1895 - background.transform.position.y);
currentDayStr = System.DateTime.Now.ToString("MM/dd/yyyy");
goalDayStr = System.DateTime.Now.ToString("MM/dd/yyyy");
Debug.Log(goalDayStr);
Debug.Log("DAY HAS PASSED!!");
//make it so user dismisses the goal instead!
//Destroy(this);
//destroy the goal and set a new one?
}
//goal complete
if(barDisplay >= 1.0f)
{
Debug.Log("Goal complete! +100pts!");
userSteps = 0;
PlayerPrefs.SetInt("currentSteps", userSteps);
savedSteps = 0;
//OnStep(0,0);
stepText.text = userSteps.ToString () + "/" + stepsGoal.ToString();
//destroy the goal and set a new one?
savedPoints += stepsGoal*10;
PlayerPrefs.SetInt("totalPoints", savedPoints);
pointsText.text = "Points: " + PlayerPrefs.GetInt("totalPoints").ToString ();
//Random item
StringBuilder invList = new StringBuilder ();
invList.Append(PlayerPrefs.GetString ("inventory"));
invList.Append(items[(int)Math.Round(UnityEngine.Random.value*6.0f)]).Append(" ");
PlayerPrefs.SetString ("inventory", invList.ToString());
}
//only applies if "daily" goal
if(prefKey == "daily")
{
if(checkNewDay(prefKey))
{
Debug.Log("You failed your goal"); //not true if progress is actually complete!
goalDayStr = currentDayStr;
if(prefKey == "daily")
savePersistantGoalDate("daily");
}
//Texture the progress bar using these parameters
public Texture2D emptyTex;
public Texture2D fullTex;
//on a button press? begin a goal?
void startGoal()
{
}
void savePersistantGoalDate(string key)
{
PlayerPrefs.SetString(key, goalDayStr);
}
bool checkNewDay(string key)
{
string checkDay = PlayerPrefs.GetString(key);
if(checkDay == currentDayStr)
return false;
return true;
}
/*
void OnGUI() {
Debug.Log (background.rectTransform.rect.width);
barSize = new Vector2 (background.rectTransform.rect.width, background.rectTransform.rect.height);
//draw the background:
GUI.BeginGroup(new Rect(barPos.x, barPos.y, barSize.x, barSize.y));
GUI.Box(new Rect(0,0, barSize.x, barSize.y), emptyTex);
//draw the filled-in part:
GUI.BeginGroup(new Rect(0,0, barSize.x * barDisplay, barSize.y));
GUI.Box(new Rect(0,0, barSize.x, barSize.y), fullTex);
GUI.EndGroup();
GUI.EndGroup();
}
*/
// Was used for testing.
private float tempcounter = 0.1f;
public void updateProgressBar()
{
barSize.x = background.rectTransform.rect.width;
barSize.y = background.rectTransform.rect.height;
tempcounter += 0.0005f;
// resize the fill.
RectTransform temp = fill.rectTransform;
temp.sizeDelta = new Vector2 (barSize.x * tempcounter, barSize.y);
temp.anchoredPosition = new Vector2 (temp.rect.width * 0.5f - (barSize.x * 0.5f),0);
}
void Update()
{
updateProgressBar ();
//needs current points counting toward this goal (daily?)
//needs the total required points for this goal
currentDayStr = System.DateTime.Now.ToString("MM/dd/yyyy");
//barDisplay = Time.time*0.05f; //put actual progress here (current/total)
barDisplay = (float)userSteps/(float)stepsGoal;
//failed to complete goal
if(currentDayStr != goalDayStr)
{
Debug.Log(currentDayStr);
Debug.Log(goalDayStr);
Debug.Log("DAY HAS PASSED!!");
//make it so user dismisses the goal instead!
//Destroy(this);
//destroy the goal and set a new one?
}
//goal complete
if(barDisplay >= 1.0f)
{
Debug.Log("Goal complete! +100pts!");
userSteps = 0;
PlayerPrefs.SetInt("currentSteps", userSteps);
savedSteps = 0;
//OnStep(0,0);
stepText.text = userSteps.ToString () + "/" + stepsGoal.ToString();
//destroy the goal and set a new one?
savedPoints += stepsGoal*10;
PlayerPrefs.SetInt("totalPoints", savedPoints);
pointsText.text = "Points: " + PlayerPrefs.GetInt("totalPoints").ToString ();
//Random item
StringBuilder invList = new StringBuilder ();
invList.Append(PlayerPrefs.GetString ("inventory"));
invList.Append(items[(int)Math.Round(UnityEngine.Random.value*6.0f)]).Append(" ");
PlayerPrefs.SetString ("inventory", invList.ToString());
}
//only applies if "daily" goal
if(prefKey == "daily")
{
if(checkNewDay(prefKey))
{
Debug.Log("You failed your goal"); //not true if progress is actually complete!
goalDayStr = currentDayStr;
savePersistantGoalDate("daily");
}
}
}
}
}
}