Heute so gecodet...

  • Tale-X schrieb:

    Ja, XML, die Polygone/Linienzüge sind Strings.
    Ah, dann könnte man das vermutlich relativ einfach mit XSLT transformieren und gleich in absolute Koordinaten umrechnen.
    Hast Du mal ein einfaches Beispiel?
    ___________________________________________________________
    Meine Kreationen: Deviant Art | Toonsup | Flickr | Youtube
    | Twitter
    Avatar: Copyright 2017 by Saiki
  • Hier der Schriftzug. Bei SVG spielt bei Groß-/Kleinschreibung eine Rolle - Großbuchstaben im Path stehen für absolute, Kleinbuchstaben für relative Koordinaten. Viel Spaß beim Transformieren ;)
    Dateien
    • Danke2b.zip

      (3,23 kB, 5 mal heruntergeladen, zuletzt: )
    Wissen ist das einzige Gut, das sich beim Teilen vermehrt. Also seid vorsichtig damit!
  • Zwar nicht heute, sondern vor vielen Jahren gecodet, aber dank der hier erwähnten Bezier-Kurven wurde ich wieder dran erinnert: Ich hab mal ein Malprogramm in Basic7 geschrieben, und irgendwann hab ich versucht, sowas wie Bezierkurven einzubauen.

    Das Programm ist ganz fürchterlich und sollte von niemandem angesehen werden, herunterladen auf eigene Gefahr. :P

    Nach dem Starten der Datei "Hirespaint V3" werden die anderen Dateien nachgeladen. Man kann es mit einem Joystick in Port 2 steuern, besser ist aber eine 1351-Maus in Port 1. Wenn man einen Joystick benutzt, ersetzt die Esc-Taste die zweite Maustaste.

    Diverse numerische Zusatzeingaben werden über die X-Position des Pointers gemacht, unter anderem auch die Farbwahl (fragt nicht, man muss halt die Basic7-Farbnummern kennen :drunk: ).

    Fast alle Zeichenfunktionen basieren auf den entsprechenden Basic7-Anweisungen (Box, Circle, Draw, etc.) mit dem Unterschied, dass das Programm eine Assembler-Unterroutine als ständiges "Undo" benutzt, so dass man eine Art Gummibandfunktion erhält - wenn auch extrem langsam. Zusätzlich zum sichtbaren Bild hält das Programm vier weitere Bildpuffer im Speicher, davon wird Nummer vier für das Undo gebraucht.

    Am Anfang sollte man einmal "Clear" anwählen, damit der Grafikbildschirm gelöscht wird.

    Bei der Funktion "Bezierkurve" setzt man dann mit dem ersten Klick den Startpunkt, mit dem zweiten Klick den Endpunkt und mit allen folgenden Klicks verändert man abwechselnd die Positionen der beiden Kontrollpunkte.
    Im Gegensatz zu einer echten Bezierkurve muss man die Kontrollpunkte allerdings ca. 1,5-mal so weit entfernt setzen (ich könnte es geometrisch erklären... ...aber ich lasse es lieber :D ).
    Hat die Kurve die gewünschte Form, muss man mit der rechten Maustaste (oder eben ESC) abbrechen.
    Ich hab mir den Code jetzt nicht mehr näher angesehen, aber wenn ich mich recht erinnere, wird die Kurve einfach nur durch 2*16 Liniensegmente angenähert, wobei die Mitte zwischen den beiden Kontrollpunkten einen zusätzlichen Kurvenpunkt definiert und die beiden Hälften der Kurve jeweils als "in den Raum gedrehter Viertelkreis" beschrieben werden können.

    Eine echte Bezierkurve wäre auch interessant, aber dafür sollte man vielleicht nicht unbedingt Basic benutzen...
    Dateien
    • hirespaint.zip

      (7,58 kB, 8 mal heruntergeladen, zuletzt: )
    Yes, I'm the guy responsible for the ACME cross assembler

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Mac Bacon ()

  • Den Plus/4 Modulcode für einen Directory-Browser. Der Browser wird aus dem Modul kopiert, Modul angeschaltet, alles grade gebogen und dann automatisch ausgeführt. War nicht so einfach wie es sich anhört. :) Man muss die Eigenheiten den C16 und P/4 erst mal kennen.

    cbmhardware.de/show.php?r=4&id=29/ Directory Browser Cartridge Code

    Ein sehr schöner Directory-Browser: plus4world.powweb.com/software/Directory_Browser in der Version 1.2


    Werde ich wohl in ein 3Plus1-Ersatz-ROM mit aufnehmen.
    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
  • Habe vor 10 Minuten meinen 10-Zeiler auf dem 8096-SK fertiggestellt für die BASIC 10Liners 2017


    Ein kleines Spiel mit Grafik und Musik, ich bin selber ganz begeistert! :) Hat auch nur ziemlich knapp
    in die 10 Zeilen gepasst, wobei mir im Nachhinein noch ein paar Optimierungsmöglichkeiten eingefallen
    sind, aber das bleibt jetzt so! :)

    Danke an alle, die mir in der Shoutbox mit Tips geholfen haben! :winke:

    Jetzt muss ich das nur noch lästigerweise in den Emulator tippen und dann noch eine Version mit
    einem Befehl pro Zeile erstellen (wer denkt sich solche Schikanen aus?), aber das mache ich heute
    nicht mehr!
    Bitte beachten: Telespielatorgesetz (TspG)
    Verstöße gegen das TspG werden umgehend und gnadenlos von Supererdbeeregeahndet!
  • Ich weiss nicht, ob ich das schonmal vorgestellt habe, aber ich habe vor einiger Zeit (ca. 2 Jahre) mal einen MIDI-Sequencer in Python geschrieben. Irgendwann hatte ich aber keine Lust mehr oder halt andere Projekte, somit blieb der lange ungenutzt. Jetzt habe ich mich heute mal aufgerafft und eine sehr simple Load/Save-Funktion eingebaut, sodass ich das Teil nun prinzipiell nutzen kann. Zwar fehlt immer noch einiges, aber ohne Load/Save war es eigentlich voellig unbrauchbar :D

    Der Sinn des Projekts ist es, einen MIDI-Sequencer zu haben, der sich wie ein klassischer Tracker bedienen laesst, allerdings um damit externe MIDI-Geraete anzusteuern. Ein wesentlicher Unterschied zu den meisten Trackern ist der, dass es nicht einfach nur Patterns gibt, sondern es gibt Patterns und einen Song, der aus mehreren (MIDI-)Spuren besteht. Das heisst, im Gegensatz zu herkoemmlichen Trackern baut man den Song nicht durch Aneinanderreihung von Patterns auf, in welchen dann immer gleich alle Spuren vorhanden sind (Schlagzeug, Bass, Melodie usw), sondern die Patterns sind immer nur fuer einzelne Instrumente gedacht, man macht also z.B. ein Schlagzeug-Pattern, ein Bass-Pattern und ein Melodie-Pattern, und im Song View wird das ganze dann erst zu einem Song arrangiert. Dies ist fuer meinen Geschmack um einiges besser und flexibler. Haupt-Inspiration hierfuer ist Jeskola Buzz (das kennt bestimmt der ein oder andere hier). Auch kann man die Patterns in eine beliebige Spur setzen, ein Bass-Pattern muss also nicht zwigend dann auch in die Bass-Spur gesetzt werden, sondern die koennte ich auch zusaetzlich noch in einer voellig andere Spur setzen, damit sie von einem anderen Synthesizer gespielt wird. Es ist also wie man sieht sehr flexibel.

    Hier mal ein paar Screenshots (im wahrsten Sinne des Wortes):


    Hier noch ein "sauberer Screenshot" ohne Alpen-Panorama im Hintergrund (laesst sich ein- und ausschalten, bzw. auch die Farben lassen sich beliebig waehlen):


    Hier noch ein Video des ganzen in Aktion:
    SHOTGUN - 4-Player Death Match - Website / CSDb / X-Mas
    FROGS - 4-Player Frog Pond - Website / CSDb
  • ZeHa schrieb:

    ich habe vor einiger Zeit (ca. 2 Jahre) mal einen MIDI-Sequencer in Python geschrieben.
    Sehr geil, mein Lieber :applaus: . Sehr cooles Projekt!
    Mein Vorname ist Marco.
    -----
    Hätte Sid Vicious Sid Wizard benutzt???
    Die Amis rätseln bis heute wie man thE rZA ausspricht.
    Wir sehen uns in Comet Chat, #c64friends, q-link, Neohabitat und diversen BBS.
    Meine Höchstpunktzahlen.
  • Inspiriert von dem Thread mit den floating point Problemen auch einmal ein simpler Emulator. Hab mich drei Tage mit den Flags rumgeärgert, bis endlich in der Einschaltmeldung die 38911 Bytes standen. Die Erlärungen für das Overflow-Flag sind ziemlich unklar. Und letztlich war es doch das Carry, das ich an einer Stelle falsch hatte.
    Was ein geiles Gefühl, wenn da das erste Mal Ready steht ;)
  • Neu

    Heute nen Bug aus einer Prototypmaschine gecodet.
    Der die Maschine peogrammiert hat ist im Urlaub.
    Eine Komponente wurde getauscht - danach lief die Gurke etwas unrund. Nicht gut.
    Die Maschine hab ich vorher nur mal kurz von aussen gesehen.
    Siemens S7 1200er drin - Gut, dass ich vorher noch nie was mit TIA Portal zu tun hatte :S
    Hat etwas länger gedauert,
    aber hat geklappt :thumbsup:
    4 X Merlin PP64 Eprommer
    Twinliner, Fashion Vision, ca. 30 Arcade PCBs,Pins: Bride Of Pinbot + Time Machine, C64, C65, C66, Gammel+Mist...
    suche:
    ne Schachtel voll Holzelektroden... :thumbsup:
  • Neu

    Habe heute mal an meiner "neuen" Steuerungsvariante rumgebastelt.

    Neben der Entfernung einiger Bug´s wird nun das 9. Bit für die X-Achse, 2 Geschwindigkeiten (mit "1" und "2", Info links oben im Screen) sowie eine etwas bessere Viceunterstützung (Joystickemulation über Tastatur) berücksichtigt.
    (Trotzdem wird ein echter Joystick empfohlen, das man sich sonst die Finger verknoten könnte ;) )

    Zudem ist das Sprite auf dem Screen "gefangen", d.h. es kann nicht aus dem Bild gesteuert werden.

    Es sind 16 Steuerungsrichtungen möglich (jeweils um 22,5 Grad versetzt) wobei bei den diagonalen Bewegungen die Geschwindigkeit im Verhältnis zu Vertikal/Horizontal automatisch angepasst wird.

    Steuerung: Grundsätzlich erstmal "normal", wenn jedoch nach dem Steuern in eine Richtung der Joystick im oder gegen den Uhrzeigersinn "gerührt" wird, wird der Bewegungswinkel um jeweils 22,5 Grad verändert.

    Wer möchte, kann mir bitte mal Rückinfo dazu geben und evtl. weitere Bug´s mitteilen :)

    EDIT: Datei nochmal neu angehangen, da ich zuerst die falsche Version hochgeladen habe...
    Dateien
    ______________________________________________
    Wenn ich posten will, werde ich Briefträger...

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von TheRealWanderer ()

  • Neu

    sind immer noch Bugs drin:

    - wenn ich z.B. nach oben gehe und dann nach komplett links gehe, dann kommt es vor, dass er diagonal laeuft (ich denke das passiert dann, wenn die Zwischenrichtung gaaanz kurz "aktiviert" wurde).
    - wenn ich einen "Bogen" laufe, z.b. rechts, rechts-oben, oben, links, dann laeuft er nach oben statt nach links.
    SHOTGUN - 4-Player Death Match - Website / CSDb / X-Mas
    FROGS - 4-Player Frog Pond - Website / CSDb