<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>MMBasic on schimana.net</title>
    <link>https://schimana.net/tags/mmbasic/</link>
    <description>Recent content in MMBasic on schimana.net</description>
    <generator>Hugo</generator>
    <language>de</language>
    <copyright>Tom Schimana</copyright>
    <lastBuildDate>Wed, 06 May 2026 17:51:00 +0200</lastBuildDate>
    <atom:link href="https://schimana.net/tags/mmbasic/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>MOD-Files als Sound-Library mit Kanälen in MMBasic</title>
      <link>https://schimana.net/blog/2026/mmbasic-mod-audio-kanaele/</link>
      <pubDate>Wed, 06 May 2026 17:51:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-mod-audio-kanaele/</guid>
      <description>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.</description>
    </item>
    <item>
      <title>Array-Lookups in heißen Schleifen wegcachen</title>
      <link>https://schimana.net/blog/2026/mmbasic-array-lookups-cachen/</link>
      <pubDate>Mon, 04 May 2026 19:23:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-array-lookups-cachen/</guid>
      <description>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.</description>
    </item>
    <item>
      <title>LOCAL kostet in MMBasic mehr als man denkt</title>
      <link>https://schimana.net/blog/2026/mmbasic-local-vermeiden-hot-loops/</link>
      <pubDate>Sat, 02 May 2026 21:08:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-local-vermeiden-hot-loops/</guid>
      <description>LOCAL für Variablen anlegen klingt nach sauberer Programmierung. In heißen Schleifen war das bei mir der falsche Reflex.</description>
    </item>
    <item>
      <title>CIRCLE pro Frame ist teurer als gedacht</title>
      <link>https://schimana.net/blog/2026/mmbasic-circle-pro-frame-teuer/</link>
      <pubDate>Thu, 30 Apr 2026 18:46:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-circle-pro-frame-teuer/</guid>
      <description>Kleine Punkte, kleiner Aufwand, oder? Beim Profilen war CIRCLE einer der teuersten Befehle pro Frame. Was ich daraus gemacht habe.</description>
    </item>
    <item>
      <title>Eigene Vektor-Schrift in MMBasic aus DATA-Statements</title>
      <link>https://schimana.net/blog/2026/mmbasic-vektor-schrift-data/</link>
      <pubDate>Tue, 28 Apr 2026 20:34:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-vektor-schrift-data/</guid>
      <description>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.</description>
    </item>
    <item>
      <title>Vektoren rotieren ohne FOR-Schleife in MMBasic</title>
      <link>https://schimana.net/blog/2026/mmbasic-math-v-rotate-vektoren/</link>
      <pubDate>Sun, 26 Apr 2026 19:17:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-math-v-rotate-vektoren/</guid>
      <description>Rotation in der Schleife mit COS und SIN ist offensichtlich. MATH V_ROTATE macht das Gleiche schneller, ohne dass man jeden Punkt selbst dreht.</description>
    </item>
    <item>
      <title>Arrays in MMBasic ohne FOR-Schleife initialisieren</title>
      <link>https://schimana.net/blog/2026/mmbasic-math-set-array-init/</link>
      <pubDate>Thu, 23 Apr 2026 21:43:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-math-set-array-init/</guid>
      <description>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.</description>
    </item>
    <item>
      <title>Dateien laden, die fehlen dürfen</title>
      <link>https://schimana.net/blog/2026/mmbasic-on-error-skip-robustes-laden/</link>
      <pubDate>Tue, 21 Apr 2026 18:09:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-on-error-skip-robustes-laden/</guid>
      <description>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.</description>
    </item>
    <item>
      <title>STATIC für Cooldowns, Debounce und Rate-Limits in MMBasic</title>
      <link>https://schimana.net/blog/2026/mmbasic-static-cooldown-debounce/</link>
      <pubDate>Sun, 19 Apr 2026 20:51:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-static-cooldown-debounce/</guid>
      <description>Eine Variable, die zwischen Aufrufen ihren Wert behält, ohne globale State zu schmutzen. Genau das macht STATIC in einer SUB.</description>
    </item>
    <item>
      <title>Object Pool statt dynamischer Allokation in MMBasic</title>
      <link>https://schimana.net/blog/2026/mmbasic-object-pool-active-flags/</link>
      <pubDate>Thu, 16 Apr 2026 19:38:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-object-pool-active-flags/</guid>
      <description>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.</description>
    </item>
    <item>
      <title>ATAN2 für 2D-Vektor-Mathe in MMBasic</title>
      <link>https://schimana.net/blog/2026/mmbasic-atan2-2d-vektor-mathe/</link>
      <pubDate>Mon, 13 Apr 2026 22:11:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-atan2-2d-vektor-mathe/</guid>
      <description>Winkel zwischen zwei Punkten, orthogonale Bewegungsrichtungen, Zielen mit Streuung. Was sich mit einem ATAN2-Aufruf alles erschlagen lässt.</description>
    </item>
    <item>
      <title>Schnelle Kollisionserkennung in MMBasic ohne Wurzel</title>
      <link>https://schimana.net/blog/2026/mmbasic-kollision-ohne-wurzel/</link>
      <pubDate>Fri, 10 Apr 2026 18:27:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-kollision-ohne-wurzel/</guid>
      <description>Zwei Kreise berühren sich? Wer dafür SQR braucht, hat den Trick verpasst. Und das schicke Spatial-Grid gewinnt nicht automatisch gegen das simple O(n²).</description>
    </item>
    <item>
      <title>Mehrere Tasten gleichzeitig in MMBasic abfragen</title>
      <link>https://schimana.net/blog/2026/mmbasic-keydown-mehrere-tasten/</link>
      <pubDate>Tue, 07 Apr 2026 19:54:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-keydown-mehrere-tasten/</guid>
      <description>INKEY$ reicht für Spielsteuerung nicht. Sobald drehen, beschleunigen und schießen gleichzeitig gehen sollen, wird KEYDOWN zum eigentlichen Werkzeug.</description>
    </item>
    <item>
      <title>Smooth 2D-Bewegung in MMBasic</title>
      <link>https://schimana.net/blog/2026/mmbasic-2d-bewegung-friction-maxspeed/</link>
      <pubDate>Sat, 04 Apr 2026 21:13:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-2d-bewegung-friction-maxspeed/</guid>
      <description>Was 2D-Bewegung rund anfühlen lässt: Beschleunigung statt Sprung, Friction statt Stop-Knopf, und Speed-Clamp per Vektor-Normalisierung statt Komponenten-Clip.</description>
    </item>
    <item>
      <title>MMBasic-Code für CMM2 und MMB4L gleichzeitig</title>
      <link>https://schimana.net/blog/2026/mmbasic-cmm2-mmb4l-portable-code/</link>
      <pubDate>Wed, 01 Apr 2026 18:39:00 +0200</pubDate>
      <guid>https://schimana.net/blog/2026/mmbasic-cmm2-mmb4l-portable-code/</guid>
      <description>MMB4L und CMM2 sehen ähnlich aus, sind im Detail aber anders. Wie sich der Code so aufstellen lässt, dass beide Plattformen ohne separate Dateien laufen.</description>
    </item>
  </channel>
</rss>
