Mit der Programmierhilfe AB_Template möchte Sami Vehmaa mehr Leute dazu zu bringen, für die Amiga-Plattform Spiele zu entwickeln. Zu diesem Zweck bietet Sami Vehmaa mit "AB_Template" (YouTube-Video der Version 0.23) Vorlagen für die RTG-Variante von AmiBlitz 3 auf itch.io an.
In der neuen Version 0.34 hat er ein Flipper-Spielekonzept integriert und das Spieleautomatenbeispiel aktualisiert.
Youen Chéné ist dabei, eine Visual Studio Code Extension zu schreiben, die Amiga Blitz Basic 2 (und Amiblitz) Unterstützung bietet. Die Syntaxhervorhebung ist in der frühen Alpha Version noch eingeschränkt. Codeurs en Seineist eine Programmierer-Community in der Normandie die von Youen Chéné organisiert wird.
Features:
Syntax-Hervorhebung.
Snippets für die meisten Blitz Basic 2 Funktionen und Methoden.
Gliederung zeigt Makros, Labels, Funktionen und Anweisungen.
Integrierte Hilfe.
Diese Version von Youen Chéné ist ein Fork desvscode-amiga-blitzbasic-Projekts von 'MickGyver' und hat das Ziel, eine vollständige, native Javascript-Erweiterung zu bieten, die möglichst ohne externe Tools auskommt (außer UAE) und nicht nur auf Windows, sondern vielen Plattformen läuft (macOS, Linux, ...).
Also manchmal hat man ja das Bedürfnis, Kreise "von Hand" zu zeichnen, der Kontrolle wegen, also z.B. die Farbe ändern zwischendurch oder spezielles Clipping usw.
Nun, ich habe das mal probiert und leider ist es mit Basic viel zu langsam" da ist soviel Overhead auf jedem Befehl, das macht außer bei o.g. Anwendungsfällen beinahe keinen Sinn.
Erst Recht, wenn wir selbst die Koordinaten checken fürs clipping anstatt auf Blitz zu vertrauen (einfache rechteckige Bitmap).
mit Clipping
ohne Clipping, Bitmapgrenzen werden von Blitz überwacht.
zum Vergleich:
interner Circle Befehl.
AmiBlitz wurde in der Version 3.9.0 veröffentlicht.
Diese Version von AmiBlitz enthält einige wesentliche Änderungen und einige Optimierungen:
Große interne Veränderungen
Unmengen von Code von asm nach basic konvertiert
Kleinere Anpassungen
Tooltype DISABLE_HIGHLIGHTING hinzugefügt, um die Leistung auf Low-End-Rechnern zu verbessern Tooltype DISABLE_LOCALIZATION hinzugefügt, um den Speicherbedarf auf Low-End-Rechnern zu reduzieren Tooltype STANDARDEDITMODE entfernt, nur noch das neue Verhalten wird unterstützt Tooltype OLDSEARCH entfernt, jetzt wird nur noch das neue Verhalten unterstützt Tooltype USE_ASLDIMS entfernt Tooltype NO_DISPLAYBEEP in DISABLE_DISPLAYBEEP umbenannt Tooltype NO_WELCOME in DISABLE_WELCOME umbenannt Tooltype TOKENBOLD in BOLD_TOKENS umbenannt Menüeintrag "Autolayout" hinzugefügt, um eine automatische Anordnung aller geöffneten Fenster per Menüaufruf durchzuführen Wrapperlib für gadtools.library zu osLibs hinzugefügt Reorganisiertes Einstellungsfenster Neues Iconify-Gadget für Quellfenster hinzugefügt (OS3.2+) Aktualisierte GlowIcons für alle Icons in der AmiBlitz3-Schublade
Wie ihr alle wißt, sollte man auf jeden Fall mal ein Tetris selbst programmiert haben.
Darum hier meine Version davon. von 1996!
Das ist jetzt natürlich noch kein richtiges Spiel, nur ein ProofOfConcept oder so.
ist schon etwas älter, ich hab es heute nochmal neu kompiliert, vorher nochmal durchgesehen wegen Bugs und so, war aber größtenteils schonmal revidiert irgendwann 2000-2003 oder so.
Sounds hängen hinterher, aber sonst...
Joystick in Port 1 zur Steuerung, P für Pause, Q oder ESC für Ende.
Manchmal will man verschiedene Fonts für diverse Gadgets verwenden, z.B. weil man in einem Listview lieber alles nett untereinander gelistet haben will und man sich mit Charakter-Spalten begnügt.
Dann hilft der einfache Trick, den IntuiFont zu wechseln während des Erstellens der Gadget-List:
ttext$=" Evil Midan, tyrant of the highest order, lies hidden deep within his underground lair. Allied security forces demand"
ttext$+" his reign to cease. one man is needed. that man is YOU. "
Repeat
ev=Event ;we don't wait...
Delay_1 ;...here we do!
Gosub winscroll
If ev=$2 Then Gosub refwin
Es scheint immer mal wieder die Frage aufzutauchen, wie man ein Interlace-Display aufbaut. Dabei steht es doch in der Anleitung.
Ok, die Anleitung ist nicht immer fehlerfrei und AGA macht gelegentlich einen Strich durch die Rechnung, aber was soll's.
Interlace erfordert normalerweise eine besondere Behandlung der Copperliste, aus der das Display aufgebaut ist.
Da das Display nur noch halb so schnell aufgebaut wird (immer erst ein Halbbild, gerade, dann das andere, ungerade), und der Vblank Interrupt dies auch bei jedem Wechsel anzeigt, können wir dies benutzen, um das jeweilige Halbbild anzuzeigen. Damit das funktioniert, muß aber das angezeigte Halbbild natürlich jede zweite Zeile überspringen.
Das erreichen wir, indem wir die Zeilenbreite (Modulo, was übersprungen wird, um die nächste Zeile anzusteuern), die das Display (Slice) erwartet, verdoppeln. Die unnütze nächste Zeile verschwindet quasi rechts von der aktuellen im Nichts.
Slice 0,44,`1,`2 / 2,$fff8,`3,8,32,`1+`1,`1+`1
Außerdem müssen wir das LACE Bit setzen in einem Spezialregister.
Dafür hat Blitz2 eine Abkürzung eingebaut: SetBplcon0.
Hier ist der Sourcecode im Beispiel. Macro benutzt, einfach mal so.
Code:
Macro laceblitz ;w, h, d
BitMap0,`1,`2,`3
VWait50
SetBPLCON0 4 ;set lace bit!
BLITZ
;$fff9 for HiRes
Slice0,44,`1,`2 / 2,$fff8,`3,8,32,`1+`1,`1+`1
SetInt5 ;VBI
;If Peek.w($dff004)<0 Show 0,0,0 Else Show 0,0,1 ;doesn't work on AGA??
lfr.b=1-lfr ;swap lace frame#
Show 0,0,lfr ;lace frame# becomes y offset to show