C64 Basic - ein digitales Feuerwerk auf dem C64
Вставка
- Опубліковано 8 лип 2024
- Silvester steht vor der Tür und um das zu feiern, habe ich ein digitales Feuerwerk in C64 Basic programmiert...
0:00 Intro
1:35 Start der Programmierung
3:35 Testposition bestimmen
8:25 Funkenpositionen berechnen
26:23 Feuerwerk Explosion ausgeben
35:23 Eine Rakete abschießen
58:41 Böllersound
59:54 Das Gewehrschussprogramm abtippen
1:05:02 Den Gewehrschuss analysieren
1:08:44 vom Gewehrschuss zum Böller
1:16:15 Den Böllersound ins Programm einbinden
1:27:28 Abschließender Test
Meine Kaffeekasse: streamelements.com/n3rdroom/tip
viel Spaß!
Discord: / discord
Links:
Web: www.n3rdroom.de
Twitch: / n3rdroom
Instagram: / n3rdroom
TikTok: / n3rdroom
Facebook: / n3rdroom
#C64 #Basic #Programmieren #Retro - Наука та технологія
Im Video sage ich das DIM FP(3,10) nur Werte zwischen 0 und 2, bzw. 0 und 9 zulässt. Dies ist natürlich falsch! Es sind Werte zwischen 0 und 3, bzw. 0 und 10 möglich. Ich dimensioniere also eine Zahl zu hoch. Korrekt wäre: DIM FP(2,9) um 3 und 10 verschiedene Werte zu speichern. 🙈😉
Ganz ehrlich, dein Kanal ist Gold wert.
Ich habe ein Jahr darauf gewartet dass jemand auf deutsch mal Basic erklärt.
Vorallem auch ruhig und angenehm wie du das macht.
Da könnte ich wirklich noch mal überlegen Basic zu lernen.
Letztes Jahr im Sommer schlief das alles bissi ein bei mir, da mir einfach Quellen zum Lernen fehlten.
Ich kann fast kein Englisch und da nützen mir Videos von englischsprachige n UA-camrn nichts.
Bitte mach weiter =)
Schön das die Videos Dir helfen. :-)
Basic lernen ist ja nicht so schwer... und es macht Spaß. Zu mindest mir... ;-)
Schau auch gern mal auf Discord vorbei: discord.com/invite/4g74TJV
Ich hatte in den 80er auch nen C64. Hab ein Computer Heft bekommen wo ein "Programm" für den 64er drin war zum aptippen. 5 gerammelt volle Seiten wirre Zeichen, stundenlang abgetippt nur um für 5 Sekunden nen " Hubschrauber" der von der oberen linken Ecke in die Ecke unten rechts gefolgen ist. Und man war noch stolz drauf 😄. Die Kids heute würden einem auslachen.
Ja, die Faszination des neuen war schon groß, und die Möglichkeit auch alleine ein vollwertiges Spiel zu entwickeln das am Puls der Zeit ist. Heute kann man auch kleine Programme und Spiele allein programmieren, aber so spektakulär wie der Hubschrauber damals ist das dann heute nicht mehr... 😅
Einen guten Rutsch! Das Video hat mir einen sehr ungewöhnlichen Silvesterabend verkürzt. Vielen Dank dafür und alles Gute fürs neue Jahr!
Hallo Tim, schön das es Dir heute eine Beschäftigung gegeben hat. Dann hat sich das Video schon bezahlt gemacht. :)
Einen guten Rutsch wünsche ich!
yes c64 commands i fin interresting
48:27 was für ein Wahnsinns-Feuerwerk! Und der Blick dabei, genial! :D Echt schönes Basic-Coding mal wieder! :)
Schön das es Dir gefallen hat. Du machst doch auch Musik, oder? Kennst Du Dich mit dem SID gut aus? :-)
@@C64 Ja ich mache Musik, allerdings in Cubuase, auf dem C64 habe ich viel Musik und auch eigene Spiele in Activision's Game Maker gemacht. :) SID Chip programmierung, puh, da bin ich raus :D Aber ich habe in den 90ern eine ganz cooles Soundtool in Basic gebastelt, mit dem man allerhand anstellen konnte, sogar eigene Sounddaten auf Diskette speichern (mit dem OPEN Befehl, nicht mit LOAD/SAVE in Basic). Ich habe viele Diskette digitalisieren lassen, nur den SID Editor nicht, was sehr schade ist! Den hättest Du total als Vorlage für ein tolles SID Basic Tool für ein Video von Dir nehmen können. Die Diskette habe ich noch, allerdings weiss ich nicht auf welcher es drauf ist...
DIM FP(3,10) lässt von FP(0,0) bis FP(3,10) alles zu. Also ja: er beginnt bei 0, aber der Endwert selbst ist auch noch erlaubt, hört also in dem Beispiel nicht bei FP(2,9) auf ;)...
PS Das Geräusch von deinem Becher beim öffnen und Schließen ist ja mal geil :-D
Ansonsten saugeiles BASIC-Progrämmchen :)
Boah alle Pixel daumen hoch 👍👍👍👍
War das eine schöne Zeit 🕰
Wo noch jede kleinste Grafik und Effekt gefeiert wurden 👑🥇
Ja das stimmt... es macht aber immer noch Spaß sowas zu programmieren... ;)
@@C64 👑👍
Sehr genial erklärt!
Súper Video zum Jahreswechsel!! Wünsche einen guten Rutsch, Gruss aus Sydney...
Vielen Dank, Dir auch einen guten Rutsch! :)
Lebst Du in Sydney?
@@C64 nur zum Arbeiten... ein Par Jährchen..
@@achimboers Ein paar Jährchen sind ja schonmal was. :-D
Was arbeitest Du denn?
@@C64 arbeite bei Prosegur, Geldtransport....
Ichbin mir ziemlich sicher, dass bei mir das Handbuch vom C64 fast doppelt so dick war und mit Mettallringen gebunden war (da 100%ig sicher), was es sehr gut nutzbar machte. Das verklebte Zeugs bricht irgendwann weil man es ständig in der Hand hat.
Genau, die ersten c64 hatten ein mit Ringen gebundenes Handbuch. Das was ich hab ist vom c64c. Die geklebten fallen echt leicht auseinander. 🙈
Hatte mir früher mal die Mühe gemacht, ein Sprite zu animieren. Also Kästchen ausmalen, Werte zusammenrechen und als DATA code eingeben. Habe im Unterricht ;-) die Kästchen gemalt und die Werte errechnet und zu Hause alles eingetippt. Hat ne Woche gedauert und am Ende war das Ergebnis zwar da, aber für mich unbefriedigend. Ab da war mir klar, welche Arbeit dahinter steckt, ein ordentliches Spiel zu programmieren.
Was? In der Schule unterrichtsfremde Dinge erledigt? Wer macht denn sowas?!? 😲🤭
Cool gemacht!
🙂
Hehe das zerfledderte Handbuch. Das kenn ich auch das Problem ;) Ist aber schon etwas her. Habs letztens noch entdeckt. Da kommen Erinnerungen hoch. Wieder ein schönes Tutorial!
Ja, der Zustand des Buchs ist schon ziemlich schlecht... Aber man kann es noch lesen. 😅
@@C64 Ich hab meinen alten C64 auch noch. Angefangen hab ich mit nem VC20. Beide Tastaturen sind übrigens miteinander tauschbar ;) Assembler hat sich mir nie wirklich erschlossen, vielleicht war ich aber auch noch zu jung dafür ;)
@@BeatMax2023 Ich war damals definitiv zu jung für Assembler... Hab die Zusammenhänge mit der Hardware nicht verstanden und dann war die C64 Zeit auch schon vorbei... 😅
@@C64 Ich finds echt faszinierend was die Kiste damals schon konnte verglichen mit den heutigen Computern.
Sieht mir dem Sternsymbol * (42) auch gut aus ... ;) Danke für den würdigen Knaller-Ersatz, den ich morgen im kleinen Kreis auf dem TheVIC20 starten werde!!!
Hallo Sven! Mit Stern hab ich's garnicht probiert. :-D
Mache ich mal... Oder man könnte auch die Zeichen Stern, Greis und unausgefüllter Kreis zufällig mischen, bzw. im ersten Abstand Kreisen, im zweiten unausgefüllte Kreise und im dritten dann Sterne machen...
Ich glaub das versuch ich später mal. :-)
Gute Idee! ... Und einen Guten Rutsch schonmal!
Wünsche ich Dir auch! :-)
Goed uitgelegd, 🎉 groeten uit Holland
Guten Rutsch ins Neue Jahr! :-)
Hehe, viel Spaß beim krachen lassen und einen guten Rutsch! 😅
@@C64 Danke! Ich hoffe Du hattest ebenso einen guten Rutsch! :)
P.S. Ich wollte Dich noch etwas fragen, was ich schon lange wissen wollte: In Basicprogrammen kann man ja bekanntermaßen nicht einfach mit LOAD ein Basicprogramm nachladen, da dann der Speicherbereich des aktuellen im Speicher befindlichen Basic Programms überschrieben wird und dann der C64 abstürzt. Warum aber funktioniert es mit diesem eigenartigen "IF A = 0 THEN A=1:LOAD"bla",8"? Was hat das bitte mit A von 0 and 1 setzen zu tun, dass es dann funktioniert? Kannst Du das erklären? Viele Grüße! :)
Hmm, wo hast Du das Beispiel denn her? Normalerweise geht das auch so nicht. :-o
Allerdings stürzt der Computer beim Nachladen normalerweise nicht ab, es ist einfach das alte Programm dann nicht mehr im Speicher... Da müsste ich mal selber mit rumexperimentieren...
@@C64 Das Beispiel gibt es in zahllosen Programmen, die ich in den 80ern und 90ern eingeladen habe und mich immer gewundert habe, wie das funktionieren soll. Wäre genial, wenn Du dazu ein eigenes Video machst, und dieses Beispiel vielleicht auch aufzählst, und ausprobiert, ob der C64 abschmiert, wenn Du in einer Basiczeile ein weiteres Programm mit Load"Beispiel",8 nachlädst... meines Wissens nach schmiert der C64 dann in dem geladenen Programm ab, sobald Du es mit LIST auflistest und in einer Programmzeile Return drückst, probiers mal aus! Müsste eigentlic auch ein witziges Video werden, bin schon gespannt! :D
@@retrogamer7ties Das klingt ja cool! und ja es ist ärgerlich dass die Directory das Basic Programm überschrieben hat... hätte man auch anders lösen können wie man sieht. Hast Du das Programm noch?
Das ganze geht nur mit LOAD"bla",8,1, womit Assemblerprogrammteile, Sprites und sonstige Daten in ANDERE Speicherbereiche als BASIC geladen werden. Das A ist notwendig, weil nach LOAD das Programm in der ersten Zeile wieder beginnt, aber da der Variablenspeicher nicht gelöscht wird dabei, verhindert er damit, dass er dauerhaft den selben LOAD Befehl immer macht.
@@Lofote Achso, stimmt, das macht Sinn! Danke für die Erklärung!
Gibt's beim C64 auch Funktionen wie z. B. in C/C++? Dann bräuchte man kein gosub.
Nein, Funktionen kann das Basic in der Version noch nicht. Es fehlen auch viele Komfort-Funktionen. Es gibt z.B. auch keine Befehle um Sprites, oder Sound direkt zu beeinflussen. Das muss man, wie auch im Soundteil dieses Videos zu sehen, alles per POKE direkt im Speicher erledigen...
Der C64 kam 1982 raus... und die BASIC V2 Version ist auch aus dem Jahr und war noch etwas... sagen wir... spartanisch. ;-)
Hi. Ich habe keinen richtigen C64. Ich habe Cloanto C64 Forever 8. Heute erst bekommen.
Wie bekomme ich das mit Symbol q hin? Shift + q oder wie geht das?
Wieso in Zeile 10 ?... ? Warum nicht einfach cls?
Danke und LG
Heiko
Hallo Heiko, in C64 Basic gibt es den BEFEHL CLS nicht. Es kann sein, das er in späteren BASIC Versionen kam...
Der Kreis geht mit SHIFT + Q. Ich weis aber nicht ob das bei dem Cloanto C64 auch so geht. Ich habe eine C64 Tastatur am PC angeschlossen. Da sind die Symbole drauf... :-D
Wenn ich Shift q drücke, kommt doch nur ein Großbuchstabe Q raus.
Habe nen Schneider CPC 6128-Emulator am Laufen. Da gibt es cls. Beim C64 kenne ich mich gar nicht aus.
Spiele bischen mit Emulatoren rum.
Woher hast Du die C64-Tastatur her und wie wird sie angeschlossen? USB?
Welches Buch ist das? Im Internet diese schöne Page gefunden: www.homecomputerworld.com/literaturc64.html
LG und gute Nacht,
Heiko
@@Heiko_Jantz Ich glaube beim Schneider CPC gibt es die Grafikzeichen nicht. Der C64 und verwandte Heimcomputer hatten einen speziellen Zeichensatz mit diesen Grafikzeichen. :-)
Aber sicher hat der Schneider ein * Symbol, dann nimm das einfach. Allerdings werden die Pokes dort so auch nicht funktionieren...
Ich benutze diese Tastatur: ua-cam.com/video/jb20UhbwyL8/v-deo.html
Die funktioniert gut mit einem C64 Emulator, allerdings benötigst Du dazu ein C64 Gehäuse mit Tastatur...
Da ist es wahrscheinlich sinnvoller einen TheC64 maxi anzuschaffen:
ua-cam.com/video/UFMNKamSRVM/v-deo.html ;-)
Der pfeifende Raketenaufstiegssound fehlt noch *zwinker*
Oh ja! Du hast recht! Das hätte ich nun aber wirklich noch einbauen können... ;)
Son Ärger... naja, da hab ich ja dann ende des Jahres noch was zu tun. :D
@@C64 :D
Zu Minute 14:50, Zufallszahlen kann man schon generieren. Das geht so ähnlich wie deine Variante hier mit:
ZUFALLSZAHL=INT(HÖCHSTWERT*RND(1))+1
Also zB.: NM=INT(9*RND(1))+1 erzeugt einen Wert zwischen 1 und 10
Oh okay, sorry, ich sehe gerade, mein Kommentar ist hinfällig!
...weiter machen ^^
Kein Problem. 😉
Ich bin immer für Tipps dankbar... Ich hab dann auch mal das Video zu dem Parameter der RND Funktion verlinkt an der Videostelle... Der Kommentar war also nicht umsonst. 😉😁
ua-cam.com/video/3s_OGMTikxI/v-deo.html
@@C64 ...nehm ich ^^
*Wissen aufsaug* : )
Von hinten durch die Brust ins Auge.
0 P=1024....
15 P=1444
??
Wo die 'Pausen' wohl her kommen@Array
Ich nenne es ... Kunst... 😂
Naja, wenn man so aus dem Bauch heraus rumcodet hat man hinterher ne menge Optimierungspotenzial... 🤷♂️
Hihi... Stimmt wohl..
Darf ich ein bisschen klugsc*eissen?
- Jede Schleife ist eine zuviel. Manchmal geht's nur nicht anders. Bei Dir schon. Die waren tripple-gemoppelt. ;D
- Multiplikation, Division in Schleifen sind auch zu vermeiden. Kostet zuviel. Stattdessen mit realen X-,Y-Werten rechnen, und erst bei der Darstellung einmalig Y*40.
- Konstanten nicht verändern (P)
- Spruenge minimieren. Viel zu viele Gosubs.
- Das Array war unnötig. Vielmehr hätte ich Data-Zeilen für Sinuskurve (Flugbahn Rakete u. Explosionen, Geschwindigkeit) und für den Sound in Arrays gepackt.
- Beim Anzeigen/Darstellen die Koordinaten des letzten Schleifendurchlaufs zum Loeschen der alten Objekts benutzen.
Aber das das sind nur Anregungen. Du machst, was Du machen willst! Und wenn es Spass macht, ist die Welt in Ordnung!
LG, Andre
du vertauscht x und y achse! x ist waagerecht
Ja, das passiert mir ständig.. ich habe eine X-Y Schwäche... :D