Hello, Guest the thread was viewed12k times and contains 305 replies

last post from Drachen at the

S-BASIC 65 (MEGA65)

  • Hi Snoopy,

    das habe ich natürlich getan, mit deinen Code und meine 6 Block große Sprite-Datei.

    Und was soll ich sagen, es funktioniert tatellos.

    hier mal zwei Bilder von DirMaster der Datei

    Bild 01


    Bild 02 Ende der Datei

    Wie du sehen kannst sind die Daten vorhanden


    Aber Snoopy, jetzt weis ich aber immer noch nicht warum es bei mir nicht geklappt hat.

    Lag es doch an meiner Programmierung?

    Habe ich die Befehle falsch zusammen gesetzt.

    Ach was mache ich mir einen Kopf. Es läuft und das ist mir wichtig.

    Aber wenn du eine Erklärung hast, immer her damit. :prof:

    In Moment sieht der Code bei mir jetzt so aus (Code von C64-Studio


    So morgen kann ich dann weiter machen.

    Und Snoopy vielen Dank für deine Hilfe.:bia

  • Hallo Snoopy,


    ich bin es nochmal.

    Habe heute an der Engine gearbeite damit der Sprite den Boden unter den Füßen erkennt.

    Da muß ich aber nocheinmal ran. Die Berechnung dafür ist zu ungenau.

    Aber darum soll es jetzt nicht gehen.

    Mir ist nämlich auf gefallen das mein Level immer bei x=0, y=0 gezeichnet werden.

    der Aufruf erfolgt ja bei mir so

    Ihm scheinen die Übergabewerte egal zu sein.

    Ich kann in Zeile 120 auch so schreiben

    Code
    1. 120 PROC "LEVEL ZEICHNEN",1,0,10

    Juckt ihn nicht. Das Level wird bei x=0 , y=0 gezeichnet :gruebel


    Erst wenn ich das Rem aus Zeile 9905 entferne, wird das Level an der richtige Stelle gezeichnet.


    So jetzt hast du noch mehr zu krübeln.

    Bis die Tage

  • Ihm scheinen die Übergabewerte egal zu sein.

    Hier kann ich ausnahmsweise sogar antworten, ohne das bequeme Bett das Büro zu verlassen, um den Laptop spät nachts nochmal anzuwerfen. :D


    Bei Prozedurdefinionen gehen in S-BASIC nur Parameter mit einstelligem Variablennamen.



    Nimm z.B. DEFPROC "Level zeichnen", z,x,y dann geht es.


    So dann faulenze arbeite ich weiter! :)

  • Ihm scheinen die Übergabewerte egal zu sein.


    Nimm z.B. DEFPROC "Level zeichnen", z,x,y dann geht es.


    So dann faulenze arbeite ich weiter! :)

    Ja soeben diesen Hinweis in die Tat umgesetzt.

    Nö, das Level fängt damit auch beim Bildschirmspeicher bei 0,0 an, statt 0,1.

    Ich glaube dein S-Basic möchte mich in den Wahnsinn treiben. :gahh:

  • Ich glaube dein S-Basic möchte mich in den Wahnsinn treiben. :gahh:

    Ich schließe mich deiner Meinung an! :aerger:


    Kurzes Testprogramm, macht was es soll, gibt die Parameter 1,0,2 aus:




    Jetzt mache ich nichts anderes als Zeile 120 mit REM auskommentieren. o% wird sowieso nirgends verwendet.



    Es wird nur 0,0,0 ausgegeben und ein weißer und ein roter Strich erscheinen. :schreck!:


    Ich melde mich 2087 wieder! :whistling:

  • Hallo Leute,


    ich möchte mal meinen Fortschritt vom Game "Jumpman Klon" mit euch teilen.

    Bis jetzt kann mein Player auf den Plattformen laufen und die Leiter hoch und runter natürlich.

    Am längsten habe ich mich mit Berechnung was unter dem Sprite ist beschäftigt, ich meine unter den Füßen. Was für ein Char-Zeichen.

    Das klappt eigentlich ziemlich gut. Mein Problem legt eher in der genauen Berechnung der Position vom Sprite.

    Im Moment läuft der Sprite auf der schrägen Ebene nicht besonders schön.

    Und ich frage mich, ob man da was besseres programmieren kann. Meine Mathekenntnisse reichen für genauere Berechnungen nicht aus.

    Vielleicht der der eine oder ander mal darüber schauen und mir ein paar hilfreiche Tipps geben, wie man es kürzer und besser programmieren kann.


    Wenn sich einer die mühe machen möchhte, sollte man den Code mit C64-Studion öffnen, denn dort habe ich einiges kommentiert.




    ZU ist das Zeichen unter dem Füßen vom Sprite wenn er auf der Leiter ist. Das ist aber nur für mich gewesen, das wird im fertigen Spiel verschwinden.

    Ach Snoopy, ich muße doch die 97 Block große Sprite-Datei nehmen. Mit meiner gekürzen Fassung kommt dein S-Basic nicht klar. Da verschwienden die Frames immer wieder. :gruebel


    Mit der Basic-Erweiterung von Snoopy mach es mir einen riesen Spaß, so ein einfaches J&R Game nach zuprogrammieren.

    Habe leider nicht immer die nötige Zeit, habe es ja nicht eilig damit. Mir geht es hauptsächlich um die Machbarkeit so was mal in Basic zu machen.

  • Drachen : Wow, das sieht auf Screenshots wirklich toll aus. :thumbup:


    Ich kann es kaum erwarten, es auch mal in Bewegung zu sehen. Aber ich war heute den ganzen Tag unterwegs und falle jetzt fast ins Bett. Heute geht bei mir nix mehr! :zzz:


    Aber ich wollte dir auf alle Fälle noch kurz schreiben, dass ich es sehr schön und toll finde, dass du dich durch die Hindernisse nicht demotivieren lässt und an deinem Spiel dranbleibst! :thumbup:


    Und dass du damit S-BASIC auch richtig auf den Zahn fühlst und Fehler rauskitzelst, die man normalerweise gar nicht findet. :)


    Du bist nicht zufällig mit Omega verwandt oder verschwägert? :D

  • Wir sind doch alle Verwande, denn wir haben alle das gleich Gen - Computer, Programmieren und Neugier und noch viel mehr.

    Ja ich Denke Omega ist ein Teil von mir. :D

  • Hallo Snoopy,


    hier noch mehr zum Nachdenken für dein S-Basic.

    Ich bin gerate dabei die Bewegung der Lianen zu programmieren.

    Ich möchte meinen Sprite um die Liane kreisen lassen. Das wollte ich so realisieren.

    Ich habe 4 Sprites für die Animation


    die ersten drei sind hintern dem Zeichen, während der vierte Sprite vor dem Zeichen ist.

    Programmiertechnisch war das kein sehr großes Ding. Was mir aber die Sache verhagelt ist das umschalten zwischen vor dem Zeichen und hinter dem Zeichen.

    Da scheint dein S-Basic nicht sehr schnell zu sein, oder ich habe es schlecht programmiert.


    hier mal der Code vom Proc

    die Variabel YY ist eine Verzögerung der Animation. Ohne sie wäre die Bewegung einfach zu schnell.

    Wenn man das jetzt so startet, funktioniert es wie ich es möchte aber mit einen Wermutstropfen.

    Dadurch erzeuge ich eine unabsichtliche Verzögerung, weil ich ja die Variabel YY wieder auf Null stelle. Aber mein Sprite wird vor dem Zeichen dargellt.

    Wenn ich statt dessen es so mache

    Code
    1. 8548 F%=11:GOTO 8600

    hat das Programm anscheind keine Zeit mehr ihn korrekt darzustellen und mein Sprite wird weiter hin hinter dem Zeichen dargellt.

    Wahrscheinlich brauch ich nur das richtig Timing dafür. Hast du event. eine Lösung dafür.


    So dann noch was, ist mir beim programmieren ein gefallen. In den späteren Leveln erscheinen mehrere gleiche Sprites auf den Bildschirm .

    Wie kann ich auf und die selben Spritedaten zugreifen wenn ich Sprite 2, 3, 4, 5 usw. einschalten möchte.

    Oder muss ich wirklich jedes Sprite zeichnen.

  • So dann noch was, ist mir beim programmieren ein gefallen. In den späteren Leveln erscheinen mehrere gleiche Sprites auf den Bildschirm .

    Wie kann ich auf und die selben Spritedaten zugreifen wenn ich Sprite 2, 3, 4, 5 usw. einschalten möchte.

    Oder muss ich wirklich jedes Sprite zeichnen.

    Du kannst doch für jedes Sprite entsprechend den Spritepointer auf den selben Spriteblock setzen.

    Dann sehen die alle gleich aus.

  • So dann noch was, ist mir beim programmieren ein gefallen. In den späteren Leveln erscheinen mehrere gleiche Sprites auf den Bildschirm .

    Wie kann ich auf und die selben Spritedaten zugreifen wenn ich Sprite 2, 3, 4, 5 usw. einschalten möchte.

    Du kannst Sprites entweder komplett (alle Frames) in ein anderes Sprite kopieren oder einzelne Frames kopieren. ;)


    Du kannst auch Frames spiegeln. :D


    Hier dafür die Befehle für die Fullcolor (FC)-Sprites:



    Später dann noch mehr zu deinen Fragen.


    Habe ich schon erwähnt, dass "wenig Zeit haben" ziemlich nervig sein kann. :aerger: