Knöpfe in Canvas programmieren

  • Hallo, ich bin mit meinem JS am Ende. Um 'Buttons' für Canvas zu programmieren, habe ich einen Code von Stackoverflow genommen, doch leide funktioniert er nicht.

    Sollte der Code funktionieren, so sollte er zu Folge haben, dass bei einem Klick ins 'Play' Feld 'k' ausgegeben wird. Doch es wird immer nur 'no' ausgegeben. Um zu schauen, wo sich denn element.top und element.width befinden, habe ich bei diesen einen Punkt gezeichnet. Dieser ist genau dort, wo es sein sollte. Doch auch bei genauem Klick auf den Punkt kommt "no".


    Was mache ich falsch? Der Code ist der exakt gleiche, wie der aus Stackoverflow.

  • Habe den Fehler gefunden, doch das hat zu neuen Problemen geführt. Ich kann nur einen Knopf damit betreiben. Wenn ich einen zweiten hinzufüge, wird dieser zwar erkannt, aber bei trotzdem als 'no' gewertet.

  • Kann durchaus sein, da ich aber JS und das programmieren an sich erlernen möchte, habe ich entschlossen Bibliotheken erstmal weitestgehend auszulassen. Aber danke für den Tipp.

  • Das Programmieren an sich erlernen kannst Du auch mit den Syntax einer Bibliothek. Vor 30, 40 Jahren meinten die Leute, man könne nur "richtig" Programmieren lernen, wenn man eine Assemblersprache erlernt und Hochsprachen wie Pascal oder C erst Mal außen vor lässt. Und wer redet heute noch von Assembler ...?

  • Ja, aber was wenn ich mal selbst eine Bibliothek schreiben will?


    Wenn Du schon mal hier bist: Ich habe zur Zeit das Problem, dass ich einen bestimmten Code erst ab einem bestimmten Zeitpunkt und unter einer bestimmten Bedingung aufrufen will, der Code selbst muss aber schon vorher geschrieben sein. Gibt es da irgendwelche Ansätze oder Möglichkeiten sowas in JS zu realisieren? Ich möchte einen Code nur dann ausführen, wenn eine bestimmte Funktion läuft.

  • Wenn ich dich richtig verstanden habe, sollte das mit zwei Funktionen möglich sein:

    Code
    function func1() {
        // Hier der Code, der "vorher schon geschrieben sein soll"
    }
    
    function func2() {
        // dies ist die Funktion, die laufen soll, damit func1() aufgerufen wird
        // einfach func1 aufrufen
        func1();
        // weitere Aktionen in func2
    }

    Zu einfach? Wenn es nicht das ist, was Du meinst, beschreibe es genauer.

  • Ja, zu einfach. Aber mittlerweile habe ich wieder alles geändert. Ich bin theoretisch noch immer bei dem Problem, dass ich es nicht hinrkriege die Sache mit den Knöpfen in eine Funktion zu rufen, um sie universel einsetzen zu können.

  • Das Programmieren an sich erlernen kannst Du auch mit den Syntax einer Bibliothek. Vor 30, 40 Jahren meinten die Leute, man könne nur "richtig" Programmieren lernen, wenn man eine Assemblersprache erlernt und Hochsprachen wie Pascal oder C erst Mal außen vor lässt. Und wer redet heute noch von Assembler ...?

    Bspw. ich. Du darfst die Anforderungen eines Webentwicklers nicht mit denen eines Core-/Hardware-Entwickler vergleichen. Zugegeben, ich selbst benötige auch fast nie Assembler, aber ich kenne genug Leute, deren hauptsächlicher Tätigkeitsprozess das ist.


    Ehrlich gesagt ist mir die Aussage so wie Du es schreibst gar nicht geläufig. Dass Assembler nach Maschinensprache die Hardware naheste Entwicklung ist, ja. Aber dass man zuerst Assembler lernen sollte, wäre auch damals schon Quatsch gewesen, denn Assembler ist komplett anders als Hochsprachen.


    Dem Vergleich kann ich so nicht zustimmen, DER hat imho schon die richtige Einstellung. JS lernst Du nicht anhand eines Framework oder einer Library. Das Grundverständnis vielleicht, aber nicht die Grundlagen der Basissprache selber.


    Ganz egal ob JS, PHP oder was auch immer. Wer wirklich eine Sprache lernen will, sollte bei den Basics anfangen, Libraries/Frameworks sind höchstens weiterführend.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!