Ich frag mal ganz vorsichtig fürn Freund.
Kommt da noch was?
Wäre echt schade, denn das sah Grafisch schon sehr gut aus!!!
Ich frag mal ganz vorsichtig fürn Freund.
Kommt da noch was?
Wäre echt schade, denn das sah Grafisch schon sehr gut aus!!!
Avalan.
Aktuell laufe ich nur unkoordiniert durchs Labrinth und erkenne noch kein System, wann man am besten wo welchen Ritter erledigt.
Spielt das noch jemand? Tipps?
Please login to see this attachment.
Du solltest dir mal diverse "tool assisted speedruns"
Ähmm, wir sind hier in BASIC, ich brauche nur eine Zahl zwischen 0 und 255 möglichst schnell und einfach, mehr nicht. :emojiSmiley-41:
Das Auslesen einer Adresse durch eine "Handlung" eines "Spielers" zu einem beliebigen Zeitpunkt den der "Spieler" nicht kennt ist sozusagen mein "Zufallsgenerator".
Als netter Nebeneffekt bekommt man gleich eine Ganzzahl und spart sich so ein INT wenn man das gerade braucht, oder keinen Platz mehr in einer Zeile hat. ![]()
besteht immer die Gefahr, daß 'böswilliger' User-Input eine Reihe von Zahlen erzeugt, die dann doch zu stark korreliert und bereits die einfachsten Tests auf Zufälligkeit nicht bestehen.
Der "Spieler" soll das gar nicht mitbekommen, dass er gerade etwas "ausgelöst" hat, das auslesen mit a=peek(b) kann zu einem beliebigen Zeitpunkt während des "Spiels" erfolgen, wie z.B. bei einem Druck auf "Weiter", "Start" oder "Pause" .... ![]()
(vielleicht sogar "zufälliger" als RND
)
Wenn Du RND korrekt verwendest, eher nicht. RND(0) macht meines Wissens genau das, was Du vor hast, und initialisiert damit die Zufallsfolge.
Das stimmt wohl.
Aber ich finde es "einfacher" wenn ich z.B. eine Zufallszahl in einer Formel brauche:
100 c=peek(53266)+1000
anstatt:
100 c=int(rnd(.)*255)+1000
Man kann die 53266 ja auch noch in eine Variable schreiben was es noch kürzer/schneller macht (interessant wenn man viel in eine Zeile quetschen muss):
100 c=peek(b)+1000
Ich hab auch mal "gemessen" was schneller wäre, peek oder rnd, und da liegen beide Varianten eigentlich gleich auf, peek evtl. etwas schneller.
Moin,
erstmal vielen Dank, hat mein "Problem" gelöst!!! ![]()
Und Sorry dass ich nicht genauer beschrieben hab was ich meine, war spät
.
Ich suchte nach einer Möglichkeit eine Zufallszahl 0-255 zu ermitteln ohne den RND Befehl zu verwenden.
Da ist die 53266 oder evtl. auch 162 schonmal sehr gut!!!
Da ich das Auslesen der Adresse von einem zu einem beliebigen Zeitpunkt stattfindenden Tastendruck des "Spielers"
abhängig mache, ist der ausgelesene Wert "sehr zufällig" (vielleicht sogar "zufälliger" als RND ![]()
).
Hallo,
wenn ich mich recht erinnere gibt es eine Speicherstelle in der Zahlenwerte zwischen 0 und 254 rotieren.
Stimmt das, und wenn ja, kennt jemand die Adresse?
Suche/google schon den ganzen Abend ![]()
Die ":" eignen sich halt besonders wenn man z.B. ein Blinken oder Flackern darstellen will da man sehr "fein" in 1er Schritten justieren kann. Ich hab grad nur keine Möglichkeit das mal Auszumessen wie lange genau ein ":" verzögert. :emojiSmiley-04:
Das müsste demnach auch mit X=12345*12345 statt dem WAIT-Aufruf funktionieren, was genau so viel Zeit verbrät.
Eine beliebte Methode um in Basic "Zeit zu verbraten" ist, wenn man Doppelpunkte ":" solange aneinander reiht bis die gewünschte Verzögerung erreicht ist.
Wie viel Zeit ein ":" braucht weis ich aber nicht, müsste man mal ausmessen!
Vielleicht hilft es ja mal jemand anderem, der diesen Thread liest.
Ich verstehe immer noch nicht wie Du das meinst. Wieso sollte man das Kollisionsregister vor der Bewegung abfragen? Da hat die Kollision doch noch gar nicht stattgefunden.
Man muss erst das Sprite neu positionieren. Und dann kann man auswerten, ob es eine Kollision gegeben hat. Oder wie?
Ich verstehe das so, dass die Kollisionsabfrage immer am "Anfang" deiner "Bewegungsroutine" gemacht werden soll, da dadurch immer genug "Zeit vergangen" ist um das Register sicher zu setzen. Dadurch wird dann quasi die "Wartezeit" genutzt um den nächsten Schritt schonmal zu berechnen, Joystickabfrage ... vorzubereiten. Falls also keine Kollision war gehts einfach weiter.
Das bringt halt nichts, da da auch kein anderer Wert herauskommen kann.
Wieso? Das Sprite wird auf eine Position gesetzt, dann wird der aktuelle Wert der Kollisionsabfrage in x gespeichert und dann ausgewertet durch "if". Somit wird das Ergebnis der Kollision bis zur Auswertung nicht mehr verändert.
Schreib mal erst den Wert in eine Variable und mach dann erst die "if" Abfrage. Es kann sein, dass der Wert in 53278 schon wieder "0" ist bevor die Auswertung des Interpreters passiert!?
Der Wert geht nicht von alleine auf 0, sondern nur durch Auslesen.
Ja, erst mit Peek auslesen und in eine Varibale schreiben und dann erst "if":
10 x=peek(53278): if x<>0 then ......
Oder verstehe ich "auslesen" falsch?
Ja, wenn da so ist. Wie erklärst Du dir das dann?
Schreib mal erst den Wert in eine Variable und mach dann erst die "if" Abfrage. Es kann sein, dass der Wert in 53278 schon wieder "0" ist bevor die Auswertung des Interpreters passiert!?
Bei mir eilts auch nicht, hab über die Feiertage eh keine Zeit! ![]()
Ich glaube, das Problem ist, dass der Wert in der 53278 "...durch Zugriff gelöscht" (laut c64 Wiki: VIC) wird.
Das heisst, du musst den Wert in der 53278 erst in eine Varible schreiben und dann erst diese auslesen/auswerten!
Oder in 1351: statt ">0" besser "<>0" verwenden?
@ EgonOlsen71
Danke für den Hinweis
Die Taster sind doch auf der Platine beschriftet! Oder?
Ich wühle mich grad durch Nixy! Sehr schönes Spiel mit hervoragender Musik.
Video von Andira:
Please login to see this link.