Beiträge von aitsch

    Ich habe mal folgendes verwendet:

    Code
    1. P = 56320
    2. J = 32 - (PEEK(P)AND31)
    3. ON JR GOTO 10,20,30,,40,50,60,,70,80,90,,,,,,100

    Das erste (10) ist Leerlauf, das Letzte (100) Feuer. Die anderen 8 sind die Richtungen.


    Das läuft ohne Arrays, ist also wahrscheinlich schneller als die Variante oben von MC64.

    auf jeden Fall ist mir der ON...GOTO Krams jetzt klarer geworden.

    Meinst du, im Benchmark hätte so eine Variante eine Chance?

    mit IFST AND... geht es ABER:



    ist nicht schneller


    Derzeit schnellste Routine (nur Basic):

    Code
    1. DIMJ:P=56320:A=1:B=2:C=4:D=8:E=16
    2. ...
    3. J=NOTPEEK(P)
    4. IFJANDATHENPRINT"HOCH"
    5. IFJANDBTHENPRINT"RUNTER"
    6. IFJANDCTHENPRINT"RECHTS"
    7. IFJANDDTHENPRINT"LINKS"
    8. IFJANDETHENPRINT"FEUER"
    9. ...

    tokra Jetzt habe ich die Assembler-Routine mal als 3. Variante eingebaut und Überraschung:



    Fast kein Unterschied auf Port 56320 zur reinen Basic-Lösung.

    Auf Port 56321 schon schneller.


    Allerdings musste ich einen Umweg über Peek(2) gehen.

    IFSTAND1THEN... nimmt Basic nicht an (SYNTAX ERROR)


    [EDIT]: Nachträglich angepasst mit wizball6502 's DIMJ Tip![/EDIT]

    Durch die 8 Richtungen + Feuer und 8 Richtungen mit gedrücktem Feuerknopf ergeben sich da aber sehr viele Ansprungpunkte.

    Das sind ja diverse Kombinationen aus den unteren 5 Bits.


    Ich kann mir keine Lösung vorstellen oder ich habe es nicht verstanden 🤷‍♂️



    ----------------------------------

    Schnellste Variante bis jetzt:

    Code
    1. P=56320:A=1:B=2:C=4:D=8:E=16
    2. ...
    3. J=NOTPEEK(P)
    4. IFJANDATHENPRINT"HOCH"
    5. IFJANDBTHENPRINT"RUNTER"
    6. IFJANDCTHENPRINT"RECHTS"
    7. IFJANDDTHENPRINT"LINKS"
    8. IFJANDETHENPRINT"FEUER"
    9. ...

    Was wäre wenn du auf die IF THENś verzichtest und stattdessen ein ON J GOTO verwendest ?

    Ich mache das größtenteils in meinem Zeichensatz Editor so.


    Auf dem MEGA65 beim Spiel "Schluckauf" habe ich ON GOTO oder so ähnlich verwendet. Das war auf jeden Fall schneller als meine IFs zuvor. Allerdings sind die Werte, die man per PEEK zurückbekommt anders als die beim MEGA65, müsste aber trotzdem machbar sein.


    ich muss gestehen, dass ich mit ON ... GOTO gar nicht so vertraut bin ||


    aber ich schaue es mir gleich mal an

    Im Rahmen meiner Codeoptimierung für einen Beitrag zu ZeHa 's nächstem Weihnachtsheft suche ich gerade

    nach der schnellsten Abfrageroutine für Joysticks unter Basic 2.0.


    Und zwar für alle 8 Richtugen + Feuer


    1. Wollte ich euch an meinem Ergebnis teilhaben lassen:


    1.1 an der Routine selbst

    1.2 und meinen Ergebnissen:


    Die beiden Ports werden jeweils in einer Schleife 1000 x abgefragt.

    Die korrekte Messung setzt natürlich voraus, dass man während dessen die Finger vom Joystick läßt.


    Demnach macht es tatsächlich einen recht deutlichen Unterschied, ob man mit Zahlen direkt arbeitet oder sie in Variablen verpackt.

    Das habe ich auch schonmal irgendwo gelesen und war nicht wirklich neu für mich. Umgesetzt habe ich es aber trotzdem nie.


    Was ich nicht wusste ist, dass es einen Unterschied zwischen den beiden Ports gibt.



    2. Wollte ich von euch wissen, ob es noch schneller geht??!!??

    Das mit der Solution habe ich auch nie verstanden und komme immer durcheinander.

    Mittlerweile habe ich mich aber halbwegs daran gewöhnt.


    Wenn Endurion es so haben will, dann ist es eben so 🤷🏼‍♂️

    Ich hatte mir das so gedacht, wenn sich jemand bereit erklärt schicke ich ihm oder ihr das Spiel oder ein paar Screenshots zu, sie/er schaut sich an wie eine Skizze aussehen könnte und legt los.


    Der Spaß soll dabei im Vordergrund stehen. Ich sehe das total locker.


    Hier geht es nicht um eine riesen Sache bzw. es muss kein perfektes Kunstwerk sein sondern soll den Communitycharacter des Heftes unterstreichen.


    Wer sowas hier in der Art aufs Papier bringen kann wäre schon ganz weit vorne:


    Das Bild hat jetzt nichts mit dem Spiel zu tun. Es dient nur als Beispiel.


    Eigentlich möchte ich den Künstler volle Freiheiten lassen und mich nicht groß einmischen.