🎮 Spielmechanik
Verfolgen Sie Punkte, Leben, Level und Spielerfortschritt in Ihren Spielen.
Variablen sind wie digitale Gedächtnisspeicher für Ihre Scratch-Programme - sie merken sich wichtige Informationen und ermöglichen es Ihren Projekten, intelligent zu reagieren und sich an verändernde Situationen anzupassen!
Stellen Sie sich eine Variable als beschriftete Box vor, in der Sie Informationen aufbewahren können. Genau wie eine echte Box können Sie:
🎮 Spielmechanik
Verfolgen Sie Punkte, Leben, Level und Spielerfortschritt in Ihren Spielen.
🧮 Berechnungen
Führen Sie mathematische Operationen durch und speichern Sie Ergebnisse für spätere Verwendung.
👤 Benutzerinformationen
Merken Sie sich Namen, Einstellungen und Präferenzen der Benutzer.
🔄 Dynamisches Verhalten
Lassen Sie Ihr Programm basierend auf gespeicherten Informationen unterschiedlich reagieren.
Variablen-Kategorie öffnen
“Variable erstellen” klicken
Variable benennen
Gültigkeitsbereich wählen
Variable verwenden
Einen Wert speichern:
setze [Punkte] auf (0)setze [Spielername] auf (frage [Wie heißt du?] und warte auf Antwort)setze [Geschwindigkeit] auf (5)
Berechnete Werte:
setze [Gesamtpunkte] auf ((Punkte) + (Bonuspunkte))setze [Durchschnitt] auf ((Summe) / (Anzahl))setze [Zufallsfarbe] auf (Zufallszahl von (1) bis (10))
Benutzereingaben:
frage [Wie alt bist du?] und warte auf Antwortsetze [Alter] auf (Antwort)
Werte erhöhen/verringern:
ändere [Punkte] um (10) // Punkte um 10 erhöhenändere [Leben] um (-1) // Leben um 1 verringernändere [Geschwindigkeit] um (0.5) // Geschwindigkeit um 0.5 erhöhen
Bedingte Änderungen:
falls <wird [Münze] berührt?> dann ändere [Punkte] um (5) spiele Klang [Sammeln]end
falls <(Leben) < [1]> dann setze [Spielstatus] auf [Game Over]end
Komplexe Berechnungen:
setze [Neue Geschwindigkeit] auf ((Geschwindigkeit) * (1.1))ändere [Erfahrung] um (([Level] * [Schwierigkeit]) + [Bonus])
Variable auf der Bühne zeigen:
zeige Variable [Punkte]verstecke Variable [Geheimcode]
In Sprites verwenden:
sage (verbinde [Du hast ] (verbinde (Punkte) [ Punkte!]))setze Größe auf (Geschwindigkeit) %gehe zu x: (x-Position) y: (Höhe)
Für Entscheidungen:
falls <(Punkte) > [100]> dann wechsle zu Kostüm [Gewinner]sonst wechsle zu Kostüm [Normal]end
Einfaches Punktesystem:
// SpielstartWenn ⚑ angeklicktsetze [Punkte] auf (0)setze [Level] auf (1)zeige Variable [Punkte]
// Punkte sammelnWenn ich [Münze] empfangeändere [Punkte] um (10)falls <(Punkte) > [100]> dann ändere [Level] um (1) setze [Punkte] auf (0) sage (verbinde [Level ] (Level))end
Erweiterte Punktelogik:
// Verschiedene PunktwerteWenn ich [Kleine Münze] empfangeändere [Punkte] um (5)
Wenn ich [Große Münze] empfangeändere [Punkte] um (20)
Wenn ich [Diamant] empfangeändere [Punkte] um (50)spiele Klang [Jackpot]
// Multiplikator-SystemWenn ich [Power-Up] empfangesetze [Multiplikator] auf (2)warte (10) Sekundensetze [Multiplikator] auf (1)
// Punkte mit Multiplikatorändere [Punkte] um ((Grundpunkte) * (Multiplikator))
Charakterstatistiken:
// CharaktererstellungWenn ⚑ angeklicktfrage [Wie heißt dein Charakter?] und warte auf Antwortsetze [Charaktername] auf (Antwort)setze [Leben] auf (100)setze [Mana] auf (50)setze [Stärke] auf (10)setze [Geschwindigkeit] auf (5)
// CharakterentwicklungWenn ich [Level Up] empfangeändere [Stärke] um (2)ändere [Leben] um (10)ändere [Mana] um (5)sage (verbinde (Charaktername) [ ist stärker geworden!])
Gesundheitssystem:
// Schaden nehmenWenn ich [Schaden] empfangeändere [Leben] um (-10)falls <(Leben) < [1]> dann setze [Leben] auf (0) sende [Game Over] an allesonst setze [Farbe] Effekt auf (25) // Rot blinken warte (0.2) Sekunden schalte Grafikeffekte ausend
// HeilungWenn ich [Heiltrank] empfangeändere [Leben] um (25)falls <(Leben) > [100]> dann setze [Leben] auf (100) // Maximum begrenzenend
Benutzerfreundliche Eingaben:
// SpielerregistrierungWenn ⚑ angeklicktfrage [Willkommen! Wie heißt du?] und warte auf Antwortsetze [Spielername] auf (Antwort)
frage [Wie alt bist du?] und warte auf Antwortsetze [Alter] auf (Antwort)
frage [Wähle Schwierigkeit (1-3):] und warte auf Antwortsetze [Schwierigkeit] auf (Antwort)
sage (verbinde [Hallo ] (verbinde (Spielername) [! Viel Spaß!]))
Einstellungen speichern:
// SpieleinstellungenWenn [s] Taste gedrückt // Settingsfrage [Lautstärke (0-100):] und warte auf Antwortsetze [Lautstärke] auf (Antwort)setze Lautstärke auf (Lautstärke) %
frage [Schwierigkeit (1-5):] und warte auf Antwortsetze [Schwierigkeit] auf (Antwort)
sage [Einstellungen gespeichert!]
Adaptive Schwierigkeit:
// Schwierigkeit anpassenWenn ⚑ angeklicktsetze [Feindgeschwindigkeit] auf (2)setze [Spawn-Rate] auf (3)
wiederhole fortlaufend falls <(Punkte) > [50]> dann setze [Feindgeschwindigkeit] auf (3) setze [Spawn-Rate] auf (2) end
falls <(Punkte) > [150]> dann setze [Feindgeschwindigkeit] auf (4) setze [Spawn-Rate] auf (1) end
warte (1) Sekundenend
Zufällige Ereignisse:
// Zufällige Power-UpsWenn ⚑ angeklicktwiederhole fortlaufend setze [Zufall] auf (Zufallszahl von (1) bis (100))
falls <(Zufall) < [5]> dann // 5% Chance erzeuge Klon von [Power-Up] end
falls <(Zufall) > [95]> dann // 5% Chance erzeuge Klon von [Bonus-Münze] end
warte (1) Sekundenend
Listen sind wie Variablen, die mehrere Werte gleichzeitig speichern können:
Liste erstellen
Elemente hinzufügen
füge [Neuer Spieler] zu [Spielerliste] hinzufüge (Punkte) zu [Highscores] hinzu
Elemente verwenden
sage (Element (1) von [Spielerliste]) // Erstes Elementsage (Element (Zufallszahl von (1) bis (Länge von [Spielerliste])) von [Spielerliste])
Listen verwalten
lösche (1) aus [Spielerliste] // Erstes Element löschenlösche alles aus [Temporäre Liste] // Liste leerenersetze Element (2) von [Highscores] durch (Neue Punktzahl)
Inventarsystem:
// Gegenstand aufhebenWenn ich [Schwert] empfangefalls <[Schwert] in [Inventar] enthalten?> dann sage [Du hast bereits ein Schwert!]sonst füge [Schwert] zu [Inventar] hinzu sage [Schwert erhalten!]end
// Inventar anzeigenWenn [i] Taste gedrücktsetze [Index] auf (1)wiederhole (Länge von [Inventar]) mal sage (Element (Index) von [Inventar]) ändere [Index] um (1) warte (1) Sekundenend
Highscore-System:
// Neuen Score hinzufügenWenn ich [Spiel Ende] empfangefüge (Punkte) zu [Highscores] hinzu
// Top 5 anzeigen (vereinfacht)setze [Anzeige] auf [Top 5 Scores:]wiederhole (5) mal setze [Höchster] auf (0) setze [Index] auf (1)
// Höchsten Score finden wiederhole (Länge von [Highscores]) mal falls <(Element (Index) von [Highscores]) > (Höchster)> dann setze [Höchster] auf (Element (Index) von [Highscores]) end ändere [Index] um (1) end
setze [Anzeige] auf (verbinde (Anzeige) (verbinde (Höchster) [, ])) lösche (Höchster) aus [Highscores]end
sage (Anzeige)
Globale Variablen (für alle Sprites):
Lokale Variablen (nur für ein Sprite):
Nachrichten mit Daten:
// Sprite 1: Schaden verursachensetze [Schadenswert] auf (25)sende [Schaden nehmen] an alle
// Sprite 2: Schaden empfangenWenn ich [Schaden nehmen] empfangeändere [Leben] um (0 - (Schadenswert))
Zustandsmaschinen:
// Spielzustand verwaltenWenn ⚑ angeklicktsetze [Spielzustand] auf [Menü]
wiederhole fortlaufend falls <(Spielzustand) = [Menü]> dann // Menü-Logik end
falls <(Spielzustand) = [Spielen]> dann // Spiel-Logik end
falls <(Spielzustand) = [Pause]> dann // Pause-Logik end
falls <(Spielzustand) = [Game Over]> dann // Game Over-Logik endend
Effiziente Variablen-Nutzung:
// Schlecht: Ständige Berechnungenwiederhole fortlaufend gehe zu x: ((Maus x-Position) + (50)) y: ((Maus y-Position) + (30))end
// Besser: Zwischenspeichernwiederhole fortlaufend setze [Ziel X] auf ((Maus x-Position) + (50)) setze [Ziel Y] auf ((Maus y-Position) + (30)) gehe zu x: (Ziel X) y: (Ziel Y)end
Problem: Variable hat unerwarteten Wert
Lösung: Debugging-Ausgaben hinzufügen
sage (verbinde [Punkte: ] (Punkte))sage (verbinde [Leben: ] (Leben))sage (verbinde [Level: ] (Level))
Variablen auf Bühne anzeigen:
Problem: Variable ist undefined oder hat falschen Startwert
Lösung: Immer initialisieren
Wenn ⚑ angeklicktsetze [Punkte] auf (0)setze [Leben] auf (100)setze [Level] auf (1)setze [Spielername] auf [Unbekannt]lösche alles aus [Inventar]
Sichere Standardwerte:
falls <(Spielername) = []> dann setze [Spielername] auf [Spieler]end
falls <(Schwierigkeit) < [1]> dann setze [Schwierigkeit] auf (1)end
Problem: Unerwartete Datentyp-Konvertierung
Text vs. Zahlen:
// Problem: "5" + "3" = "53" (Text)setze [Ergebnis] auf ((Zahl1) + (Zahl2))
// Lösung: Explizite Konvertierungsetze [Ergebnis] auf ((0 + (Text1)) + (0 + (Text2)))
Eingabe-Validierung:
frage [Gib eine Zahl ein:] und warte auf Antwortfalls <(0 + (Antwort)) = (Antwort)> dann setze [Zahl] auf (Antwort)sonst sage [Das ist keine gültige Zahl!] setze [Zahl] auf (0)end
Variablen-Namen:
Spielerpunkte
, Feindgeschwindigkeit
x
, temp
, var1
spielerX
, spielerY
, spielerGeschwindigkeit
playerX
, spieler_y
, SpeedPlayer
Gültigkeitsbereiche:
Speicher-Management:
Sie haben gelernt:
Variablen sind das Gedächtnis Ihrer Programme - sie machen den Unterschied zwischen statischen Animationen und intelligenten, interaktiven Erlebnissen! 🧠✨