Create smooth stream of symbols
This commit is contained in:
@@ -4140,6 +4140,7 @@ GameObject:
|
|||||||
- component: {fileID: 1768150805}
|
- component: {fileID: 1768150805}
|
||||||
- component: {fileID: 1768150804}
|
- component: {fileID: 1768150804}
|
||||||
- component: {fileID: 1768150803}
|
- component: {fileID: 1768150803}
|
||||||
|
- component: {fileID: 1768150807}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Canvas
|
m_Name: Canvas
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -4229,6 +4230,19 @@ RectTransform:
|
|||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
m_Pivot: {x: 0, y: 0}
|
m_Pivot: {x: 0, y: 0}
|
||||||
|
--- !u!114 &1768150807
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1768150802}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 9ede962218eda88668cd8032b921aada, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
canvas: {fileID: 1768150805}
|
||||||
--- !u!1 &1898716846
|
--- !u!1 &1898716846
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@@ -1,9 +1,18 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Contains all game logic for the JustSign game
|
||||||
|
/// </summary>
|
||||||
public class JustSignController : MonoBehaviour
|
public class JustSignController : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The canvas containing all components
|
||||||
|
/// </summary>
|
||||||
|
public Canvas canvas;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// All of the words that can be used in this session
|
/// All of the words that can be used in this session
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -19,23 +28,79 @@ public class JustSignController : MonoBehaviour
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private Theme currentTheme;
|
private Theme currentTheme;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// List of strings representing all words on the track
|
||||||
|
/// </summary>
|
||||||
|
private List<string> activeWords = new List<string>();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// List of objects representing all symbols on the track
|
||||||
|
/// </summary>
|
||||||
|
private List<GameObject> activeSymbols = new List<GameObject>();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Width and height of the symbols
|
||||||
|
/// </summary>
|
||||||
|
private int symbolSize = 280;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Controls movement speed of symbols (higher -> faster)
|
||||||
|
/// </summary>
|
||||||
|
private int moveSpeed = 200;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Starting X-coordinate of a symbol = (-1920 - symbolsize) / 2
|
||||||
|
/// </summary>
|
||||||
|
private int trackX = -1100;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Starting Y-coordinate of a symbol
|
||||||
|
/// </summary>
|
||||||
|
private int trackY = -200;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Time at which the last symbol was spawned
|
||||||
|
/// </summary>
|
||||||
|
private float lastSpawn;
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
themeList = ThemeLoader.LoadJson();
|
themeList = ThemeLoader.LoadJson();
|
||||||
currentTheme = FindThemeByName(PlayerPrefs.GetString("themeName"));
|
currentTheme = FindThemeByName(PlayerPrefs.GetString("themeName"));
|
||||||
words = currentTheme.words;
|
words = currentTheme.words;
|
||||||
/*
|
lastSpawn = Time.time;
|
||||||
RectTransform rectTransform = newImage.GetComponent<RectTransform>();
|
|
||||||
rectTransform.localPosition = new Vector3(xPosition, yPosition, 0);
|
SpawnNewSymbol();
|
||||||
rectTransform.sizeDelta = new Vector2(width, height);
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update is called once per frame
|
// Update is called once per frame
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
|
float currentTime = Time.time;
|
||||||
|
if (currentTime - lastSpawn > 1) {
|
||||||
|
lastSpawn = currentTime;
|
||||||
|
SpawnNewSymbol();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (activeSymbols[0].GetComponent<RectTransform>().localPosition.x > -trackX) {
|
||||||
|
Debug.Log("LENGTH BEFORE:");
|
||||||
|
Debug.Log(activeWords.Count);
|
||||||
|
activeWords.RemoveAt(0);
|
||||||
|
Debug.Log("LENGTH AFTER:");
|
||||||
|
Debug.Log(activeWords.Count);
|
||||||
|
GameObject symbol = activeSymbols[0];
|
||||||
|
activeSymbols.RemoveAt(0);
|
||||||
|
Destroy(symbol);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Debug.Log(activeWords.Count);
|
||||||
|
Debug.Log(activeWords.Count);
|
||||||
|
|
||||||
|
foreach (GameObject symbol in activeSymbols) {
|
||||||
|
RectTransform rectTransform = symbol.GetComponent<RectTransform>();
|
||||||
|
rectTransform.localPosition = new Vector3(rectTransform.localPosition.x + Time.deltaTime * moveSpeed, trackY, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -60,4 +125,26 @@ public class JustSignController : MonoBehaviour
|
|||||||
Debug.Log("Requested theme not found");
|
Debug.Log("Requested theme not found");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a new symbol at the start of the track
|
||||||
|
/// </summary>
|
||||||
|
void SpawnNewSymbol() {
|
||||||
|
string nextSymbol = words[UnityEngine.Random.Range(0, words.Length)];
|
||||||
|
|
||||||
|
GameObject newSymbolObject = new GameObject("Symbol");
|
||||||
|
Image newImage = newSymbolObject.AddComponent<Image>();
|
||||||
|
RectTransform rectTransform = newSymbolObject.GetComponent<RectTransform>();
|
||||||
|
rectTransform.SetParent(canvas.transform, false); // Set the parent to the Canvas
|
||||||
|
rectTransform.localPosition = new Vector3(trackX, trackY, 0);
|
||||||
|
rectTransform.sizeDelta = new Vector2(symbolSize, symbolSize);
|
||||||
|
|
||||||
|
Sprite sprite = Resources.Load<Sprite>("Common/Images/" + nextSymbol);
|
||||||
|
|
||||||
|
// Set the new sprite as the Image component's source image
|
||||||
|
newImage.sprite = sprite;
|
||||||
|
|
||||||
|
activeWords.Add(nextSymbol);
|
||||||
|
activeSymbols.Add(newSymbolObject);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,9 @@ using TMPro;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Contains all game logic for the SpellingBee game
|
||||||
|
/// </summary>
|
||||||
public class GameController : MonoBehaviour
|
public class GameController : MonoBehaviour
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user