MOD-Files als Sound-Library mit Kanälen in MMBasic
Musik und Soundeffekte gleichzeitig laufen lassen, ohne dass sich was abschießt. Mein Weg dahin geht über PLAY MODSAMPLE und ein paar feste Kanäle.
Musik und Soundeffekte gleichzeitig laufen lassen, ohne dass sich was abschießt. Mein Weg dahin geht über PLAY MODSAMPLE und ein paar feste Kanäle.
Wenn der gleiche Array-Index fünfmal pro Iteration auftaucht, lohnt es sich, ihn einmal in eine Variable zu legen. Klein, aber bei mir messbar.
LOCAL für Variablen anlegen klingt nach sauberer Programmierung. In heißen Schleifen war das bei mir der falsche Reflex.
Kleine Punkte, kleiner Aufwand, oder? Beim Profilen war CIRCLE einer der teuersten Befehle pro Frame. Was ich daraus gemacht habe.
Pixel-Fonts skalieren nicht schön, und für ein Vektor-Spiel passen sie auch optisch nicht. Wie ich aus DATA-Statements eine skalierbare Schrift gebaut habe.
Rotation in der Schleife mit COS und SIN ist offensichtlich. MATH V_ROTATE macht das Gleiche schneller, ohne dass man jeden Punkt selbst dreht.
Ein ganzes Array auf einen Wert setzen, ohne Schleife. MATH SET ist der unscheinbare Befehl, den ich mittlerweile öfter brauche als alles andere aus der MATH-Familie.
Wenn eine Datei optional ist und beim ersten Start noch fehlt, soll das Programm nicht abstürzen. ON ERROR SKIP plus MM.ERRNO ist der saubere Weg.
Eine Variable, die zwischen Aufrufen ihren Wert behält, ohne globale State zu schmutzen. Genau das macht STATIC in einer SUB.
Schüsse, Partikel, Asteroiden ständig erzeugen und löschen funktioniert in MMBasic nicht. Wie ich mit einem festen Pool und Active-Flags trotzdem flexibel bleibe.