Ik ben een klein spelletje aan het maken en wil hoge scores opslaan. Ik heb een Highscore-class gemaakt in de top van het schetsbestand, zoals deze:
class Highscore {public: String name; int score; String toString () {return this->name + "-" + (String) score; } Highscore (String naam, int score) {this->name = naam; this->score = score; }}; setup () {// etc
Nu. Onderaan de sketch heb ik een functie die ik een Highscore-object als parameter wil nemen, maar de compiler laat me dat niet. Voorbeeld:
void writeHighscore (Highscore hs) {File f = SD.open ("high.txt", FILE_WRITE); // Dingen doen
De complatiefout is als volgt:
sketch.ino: 19: 21: error: variabele of veld 'writeHighscore' ongeldig verklaard
sketch.ino: 19: 21: fout: 'Highscore' is niet gedeclareerd in dit bereik
sketch.ino: In functie 'void setup ()':
sketch.ino: 64: 20: fout : 'writeHighscore' is niet gedeclareerd in dit bereik
Na het wijzigen van het parametertype naar String, int of wat dan ook, verdwijnen alle fouten. Ik kan Highscore-objecten maken BINNEN de writeHighscore ()
-functie, maar hoe kan ik er objecten aan doorgeven?
Bewerken 1 - Objecten maken
Highscore hs = Highscore ("John", 975); Serial.println (hs.toString ()); // Drukt "John - 975" af zoals verwacht schrijfHighscore (hs); // Fout