static public int punteggio = 0; // Messaggio per contenere il punteggio accumulato in una partita // Start is called before the first frame update void Start() { refGeneratore = GameObject.FindGameObjectWithTag("GeneratoreCarte").GetComponent <GeneratoreCarte>(); // Prendiamo la referenza del generatore di carte refViewManager = GameObject.FindGameObjectWithTag("ViewManager").GetComponent <ViewManager>(); // Prende l'oggetto con il tag ComboManager refAudioManager = GameObject.FindGameObjectWithTag("AudioManager").GetComponent <AudioManager>(); // Prende l'oggetto con il tag AudioManager in modo da averlo disponibile in ogni scena visto che il GameManager è sempre presente refLevelManager = GameObject.FindGameObjectWithTag("LevelManager").GetComponent <LevelManager>(); // Prende l'oggetto con il tag LevelManager GameObject[,] mazzoCarte = refGeneratore.getMazzoCarte(); // Recuperiamo il mazzo di carte generato dal generatore refViewManager.GiraCarteMazzo(mazzoCarte); // Lancia il metodo che gira le carte a inizio partita punteggio = 0; // Azzeriamo il punteggio ad inizio partita visto che potrebbe essere ancora presente quello della partita precedente }
// Start is called before the first frame update void Start() { refGeneratore = GetComponent <GeneratoreCarte>(); // Prendiamo la referenza del generatore di carte GameObject[,] mazzoCarte = refGeneratore.getMazzoCarte(); // Recuperiamo il mazzo di carte generato dal generatore object[] carteCaricate = Resources.LoadAll("Memory1/Cards/PNG-cards-1.3/", typeof(Sprite)); // Carica le Sprite in un array di oggetti. Nota: Resources accede alla cartella Resources salvata in Assets spritesCarte = new Sprite[carteCaricate.Length]; // Creiamo un array di Sprites // Cicliamo per fare la conversione da oggetto generico a Sprite per ogni Sprite caricata for (int i = 0; i < carteCaricate.Length; i++) { spritesCarte[i] = (Sprite)carteCaricate[i]; } posizioniCarte = refGeneratore.getPosizioniCarte(); // Recuperiamo il vettore di posizioni iniziali dalla referenza al generatore // Chiamiamo il metodo che mischia le carte Shuffle(posizioniCarte); // Cicliamo 8 volte per valorizzare gli attributi delle coppie di carte for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j = j + 2) { numeroSpriteRandom = Random.Range(0, 67); // Generiamo il valore della sprite carta assicurandoci con l'HashSet che non sia già stato generato in precedenza while (!checkCartaGenerata.Add(numeroSpriteRandom)) { numeroSpriteRandom = Random.Range(1, 14); } // Assegnamo le sprite della coppia di carte mazzoCarte[i, j].GetComponent <ScriptCarta>().SetImmagineCarta(spritesCarte[numeroSpriteRandom]); mazzoCarte[i, j + 1].GetComponent <ScriptCarta>().SetImmagineCarta(spritesCarte[numeroSpriteRandom]); // Assegnamo la posizione alla coppia di carte mazzoCarte[i, j].transform.position = posizioniCarte[i * 4 + j]; mazzoCarte[i, j + 1].transform.position = posizioniCarte[i * 4 + j + 1]; } } }