HTML5 Canvas: Verschieben / Verschieben der Welt mit den Pfeiltasten in EaselJS

8

Nach einem Jahr des Studierens und Experimentierens mit Trial-and-Error fühle ich, dass ich anfange, JavaScript ein wenig mehr zu verstehen. Also, jetzt, ich möchte versuchen, ein einfaches 2D-Plattformspiel zu schreiben (denke Super Mario World oder Sonic the Hedgehog). Dazu werde ich die EaselJS-Bibliothek einsetzen.

Ich versuche herauszufinden, wie ich mit Hilfe der linken und rechten Pfeiltaste die "Welt" innerhalb einer Leinwand bewegen / verschieben kann. Ich weiß, wie ich eine Funktion auf einem keydown der Pfeiltaste ausführen kann, aber ich bin mir nicht sicher, wie ich mich dem Verschieben / Verschieben nähern sollte.

Sollte ich die Position / Koordinaten jedes einzelnen Gegenstandes in der Leinwand anpassen, wenn eine Taste gedrückt wird? Oder sollte ich vielleicht alles in einen Container legen und die Position / Koordinaten des Containers verschieben?

Ich werde alles schätzen, was mich in die richtige Richtung bringt. Tyvm:)

Mit Antwort aktualisiert Die Antwort unten bestätigte, dass ich tatsächlich alles in ein container , damit ich die Position dieses Containers festlegen kann. Dies ist der Code, den ich entworfen habe, und es funktioniert.

%Vor%

Ich habe versucht, world.x sowie world.regX zu aktualisieren. Irgendwie scheint world.regX glatter zu werden.

    
AKG 21.06.2013, 18:51
quelle

4 Antworten

7

Ich denke, der beste Weg besteht darin, alle Anzeigeobjekte, die gescrollt werden sollen, in einen scrollableObjectContainer einzufügen (vielleicht haben Sie statische Elemente wie die Lifebar).

Wenn Sie sich also bewegen, aktualisieren Sie scrollableObjectContainer.regX.

Sie können tweenJS für ein sanfteres Scrollen verwenden.

    
rpg600 21.06.2013, 19:03
quelle
1

Nur eine Idee ... aber werfen Sie einen Blick auf die Canvas-Übersetzungsfunktion und verwenden Sie sie zu Beginn jedes Neuzeichnens, um den Kontext festzulegen, aus dem alles andere gezeichnet werden soll.

Ссылка

    
Samuel Reid 21.06.2013 18:56
quelle
0

Normalerweise würde ich EaselJS für die meisten Canvas-Projekte zustimmen, aber die Art des Spiels, das Sie erstellen möchten, wäre besser für MelonJS geeignet.

Schau es dir Ссылка

an     
Neil 21.06.2013 18:58
quelle
0

Hier ist ein Beispiel von 2d Top-Down Scroll und Rotation nach einem Spieler.

Ссылка

Aber es läuft darauf hinaus:

%Vor%

Dann geht alles einschließlich des Spielers in den World-Container und wird gedreht, während sich der Spieler bewegt. GUI muss nach Welt sein, also zieht es darüber.

  • Bühne
    • Welt
      • Objekte
      • Spieler
    • Gui
Morgan Gilroy 22.06.2017 13:55
quelle