Inhaltsverzeichnis
Mauskomponente
结论
Heim Web-Frontend js-Tutorial Über das Wesentliche hinaus clever werden: Maus- und Touch-Events

Über das Wesentliche hinaus clever werden: Maus- und Touch-Events

Sep 03, 2023 pm 07:29 PM
输入设备 事件处理 交互

Über das Wesentliche hinaus clever werden: Maus- und Touch-Events

In der letzten Crafty-Serie haben Sie verschiedene Möglichkeiten kennengelernt, Elemente mithilfe Ihrer Tastatur zu verschieben. Während Sie mit der Tastatur eine Vielzahl von Spielen erstellen können, müssen Sie in manchen Situationen verschiedene Mausereignisse steuern, um das Spiel interessanter zu gestalten. Stellen Sie sich zum Beispiel ein Spiel vor, bei dem Luftballons an zufälligen Stellen auf dem Bildschirm erscheinen. Wenn der Benutzer auf Ballons klicken muss, um Punkte zu erzielen, dann benötigt er unbedingt eine Mauskomponente.

Ebenso sind KeyboardKomponenten nutzlos, wenn Sie ein Spiel für mobile Geräte entwickeln. In diesem Fall müssen Sie sich bei der Erstellung Ihres Spiels auf Touch-Komponenten verlassen. In diesem Tutorial erfahren Sie mehr über Maus- und Touch-Komponenten in Crafty.

Mauskomponente

Mouse Komponente wird verwendet, um grundlegende Mausereignisse zu Entitäten hinzuzufügen. Hier ist eine Liste aller in dieser Komponente enthaltenen Ereignisse:

  • MouseOver: Dieses Ereignis wird ausgelöst, wenn die Maus in das Objekt eindringt.
  • MouseOut: Dieses Ereignis wird ausgelöst, wenn die Maus die Entität verlässt.

  • MouseDown: Dieses Ereignis wird ausgelöst, wenn die Maustaste auf der Entität gedrückt wird.

  • MouseUp: Dieses Ereignis wird ausgelöst, wenn die Maustaste innerhalb der Entität losgelassen wird.

  • Klick: Dieses Ereignis wird ausgelöst, wenn mit der Maustaste innerhalb der Entität geklickt wird.

  • DoubleClick: Dieses Ereignis wird ausgelöst, wenn die Maustaste auf ein Objekt doppelklickt.

  • MouseMove: Dieses Ereignis wird ausgelöst, wenn sich die Maus innerhalb der Entität bewegt.

Denken Sie daran, dass Mausereignisse nur dann auf Entitäten ausgelöst werden, wenn Sie ihnen die Mouse 组件时,鼠标事件才会在实体上触发。以下是将 MouseMove-Komponente hinzugefügt haben. Hier ist der Code zum Binden des MouseMove-Ereignisses an das Feld in der Demo unten:

var Box = Crafty.e("2D, Canvas, Color, Mouse")
  .attr({
    x: 200,
    y: 100,
    w: 200,
    h: 200
  })
  .color("black")
  .origin("center")
  .bind('MouseMove', function() {
    this.rotation += 1;
  });
Nach dem Login kopieren

Der Karton ist gebunden MouseMove 事件后,鼠标在盒子上每移动一次,盒子就会旋转 1 度。 .origin() 方法用于将盒子的旋转点设置为中心。它还可以采用其他值,例如 "左上角""右下角" usw.

Versuchen Sie, Ihren Cursor in die Felder in der Demo hinein und aus ihnen heraus zu bewegen. Wenn Sie die Maustaste im Feld gedrückt halten, wird das Ereignis MouseDown ausgelöst und die Farbe des Feldes wird rot.

Das < p>MouseEvent-Objekt wird auch als Parameter an die Callback-Funktionen all dieser Mausereignisse übergeben. Es enthält alle Daten, die sich auf dieses spezifische Mausereignis beziehen.

Sie können mouseButton 属性检查用户单击了哪个鼠标按钮。例如,可以使用 Crafty.mouseButtons.LEFT 检测左键单击。同样,可以使用 Crafty.mouseButtons.MIDDLE auch verwenden, um mittlere Klicks zu erkennen.

< h2>Maus-Drag-Komponente

MouseDrag组件提供了具有不同拖放鼠标事件的实体。但是,如果实体本身无法拖放,那么添加这些事件就没有多大意义。您可以使用 Draggable 组件向实体添加拖放功能。该组件侦听来自 MouseDrag 组件的事件并相应地移动给定的实体。 MouseDrag 组件会自动添加到具有 Draggable Jede Entität der Komponente.

Draggable 组件具有三个方法:.enableDrag().disableDrag().dragDirection().Die ersten beiden Methoden aktivieren bzw. deaktivieren das Ziehen von Elementen. Mit der dritten Methode wird die Ziehrichtung festgelegt.

Standardmäßig bewegen sich Elemente in jede Richtung, in die sich der Cursor bewegt. Sie können jedoch this.dragDirection({x:0, y:1}) 将实体的运动限制为垂直方向。同样,您可以使用 this.dragDirection({x:1, y:0}) verwenden, um zu erzwingen, dass sich die Entität nur in horizontaler Richtung bewegt.

Sie können die Richtung auch direkt in Grad angeben. Um beispielsweise ein Element um 45 Grad zu verschieben, verwenden Sie einfach this.dragDirection(45) 而不是 this.dragDirection({x:1, y:1} ).

Zusätzlich zum Ziehen und Ablegen von Elementen müssen Sie auch wissen, wann das Ziehen beginnt und endet. Dies kann mithilfe des StartDragStopDrag 事件来完成。还有一个 Dragging-Ereignisses erfolgen, das beim Ziehen einer Entität ausgelöst wird.

Hier ist der Code zum Ziehen des roten Kästchens in der Demo unten:

var hBox = Crafty.e("2D, Canvas, Color, Draggable")
  .attr({
    x: 50,
    y: 50,
    w: 50,
    h: 50
  })
  .color("red")
  .dragDirection(0)
  .bind('Dragging', function(evt) {
    this.color("black");
  })
  .bind('StopDrag', function(evt) {
    this.color("red");
  });
Nach dem Login kopieren

设置框的宽度、高度和位置后,我使用 .dragDirection(0) 来限制框在水平方向的移动。我还使用 .bind() 方法将实体绑定到 DraggingStopDrag 方法。

将颜色更改为黑色可以向用户表明实体当前正在被拖动。您还可以使用 StartDrag 事件代替 Dragging 因为实体的颜色只需要更改一次。当您必须连续更改或监视被拖动实体的属性时,Dragging 事件更合适。例如,您可以使用以下代码在框到达所需位置后禁用对其的拖动。

hBox.bind('Dragging', function(evt) {
    this.color("black");
    if(this.x > 300) {
      this.disableDrag();
    }
});
Nach dem Login kopieren
触摸组件

如果需要访问实体的触摸相关事件,可以使用 Touch 组件。该组件使您可以访问四个不同的事件:

  • TouchStart:当实体被触摸时触发此事件。
  • TouchMove:当手指在实体上移动时会触发此事件。
  • TouchCancel:当某些事件中断触摸事件时会触发此事件。
  • TouchEnd:当手指在实体上抬起或离开该实体时,会触发此事件。

前三个事件可以访问TouchEvent对象,该对象包含有关触摸的所有信息。

某些游戏或项目可能需要您检测多次触摸。这可以通过使用 Crafty.multitouch(true) 启用多点触控来实现。传递此方法 truefalse 可打开和关闭多点触控。

在您的项目中使用 Touch 组件之前,您应该知道它目前与 Draggable 组件不兼容。

结论

完成本教程后,您现在应该能够正确处理不同的鼠标事件或轻松创建基于拖放的游戏。请记住,我在本教程中使用了 Crafty 版本 0.7.1,并且演示可能无法与该库的其他版本一起使用。

在下一个教程中,您将学习如何使用精灵表在 Crafty 中为不同的游戏角色设置动画。

Das obige ist der detaillierte Inhalt vonÜber das Wesentliche hinaus clever werden: Maus- und Touch-Events. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ist das Mikrofon ein Eingabegerät oder ein Ausgabegerät? Ist das Mikrofon ein Eingabegerät oder ein Ausgabegerät? Aug 22, 2022 pm 12:00 PM

Ein Mikrofon ist ein Eingabegerät. Eingabegeräte dienen der Eingabe von Befehlen, Programmen, Daten, Texten, Grafiken, Bildern, Audio- und Videoinformationen in den Computer; Mikrofone sind Energieumwandlungsgeräte, die Tonsignale in elektrische Signale umwandeln, die Audioinformationen in den Computer eingeben können Das Mikrofon ist ein Eingabegerät.

Aktivieren Sie die Split-Screen-Interaktion in Win11 Aktivieren Sie die Split-Screen-Interaktion in Win11 Dec 25, 2023 pm 03:05 PM

Im Win11-System können wir durch Aktivieren der Split-Screen-Interaktion mehreren Monitoren ermöglichen, dasselbe System zu verwenden und zusammenzuarbeiten. Viele Freunde wissen jedoch nicht, wie man die Split-Screen-Interaktion einschaltet Die Systemeinstellungen sind: Steh auf und lerne. So öffnen Sie die Split-Screen-Interaktion in Win11 1. Klicken Sie auf das Startmenü und suchen Sie nach „Einstellungen“. 2. Suchen Sie dort dann nach den „System“-Einstellungen. 3. Wählen Sie nach Eingabe der Systemeinstellungen links „Anzeige“ aus. 4. Wählen Sie dann in den Mehrfachanzeigen rechts „Diese Anzeigen erweitern“.

Python-GUI-Programmierung: Beginnen Sie schnell und erstellen Sie einfach interaktive Schnittstellen Python-GUI-Programmierung: Beginnen Sie schnell und erstellen Sie einfach interaktive Schnittstellen Feb 19, 2024 pm 01:24 PM

Eine kurze Einführung in die Python-GUI-Programmierung. GUI (Graphical User Interface, grafische Benutzeroberfläche) ist eine Möglichkeit, Benutzern die grafische Interaktion mit Computern zu ermöglichen. Unter GUI-Programmierung versteht man die Verwendung von Programmiersprachen zur Erstellung grafischer Benutzeroberflächen. Python ist eine beliebte Programmiersprache, die eine umfangreiche GUI-Bibliothek bietet und die Python-GUI-Programmierung sehr einfach macht. Einführung in die Python-GUI-Bibliothek Es gibt viele GUI-Bibliotheken in Python, von denen die am häufigsten verwendeten sind: Tkinter: Tkinter ist die GUI-Bibliothek, die mit der Python-Standardbibliothek geliefert wird. Sie ist einfach und benutzerfreundlich, verfügt jedoch über begrenzte Funktionen. PyQt: PyQt ist eine plattformübergreifende GUI-Bibliothek mit leistungsstarken Funktionen.

Vue3+TS+Vite-Entwicklungsfähigkeiten: Wie man mit der Backend-API interagiert Vue3+TS+Vite-Entwicklungsfähigkeiten: Wie man mit der Backend-API interagiert Sep 08, 2023 pm 06:01 PM

Vue3+TS+Vite-Entwicklungsfähigkeiten: So interagieren Sie mit der Back-End-API Einführung: Bei der Entwicklung von Webanwendungen ist die Dateninteraktion zwischen dem Front-End und dem Back-End eine sehr wichtige Verbindung. Als beliebtes Front-End-Framework bietet Vue3 viele Möglichkeiten zur Interaktion mit Back-End-APIs. In diesem Artikel wird die Verwendung der Vue3+TypeScript+Vite-Entwicklungsumgebung für die Interaktion mit der Back-End-API vorgestellt und das Verständnis anhand von Codebeispielen vertieft. 1. Verwenden Sie Axios, um Anfragen zu senden

Wie verwalte ich eine vollständige kreisförmige Ereigniswarteschlange in C++? Wie verwalte ich eine vollständige kreisförmige Ereigniswarteschlange in C++? Sep 04, 2023 pm 06:41 PM

Einführung CircularQueue ist eine Verbesserung linearer Warteschlangen, die eingeführt wurde, um das Problem der Speicherverschwendung in linearen Warteschlangen zu lösen. Zirkuläre Warteschlangen nutzen das FIFO-Prinzip, um Elemente daraus einzufügen und daraus zu löschen. In diesem Tutorial besprechen wir den Betrieb einer zirkulären Warteschlange und deren Verwaltung. Was ist eine kreisförmige Warteschlange? Eine kreisförmige Warteschlange ist eine andere Art von Warteschlange in der Datenstruktur, bei der das Front-End und das Back-End miteinander verbunden sind. Er wird auch als Ringpuffer bezeichnet. Sie funktioniert ähnlich wie eine lineare Warteschlange. Warum müssen wir also eine neue Warteschlange in die Datenstruktur einführen? Wenn Sie eine lineare Warteschlange verwenden und die Warteschlange ihr maximales Limit erreicht, ist möglicherweise etwas Speicherplatz vor dem Endzeiger vorhanden. Dies führt zu Speicherverlust und ein guter Algorithmus sollte in der Lage sein, die Ressourcen voll auszunutzen. Um die Speicherverschwendung zu lösen

Ereignisverarbeitungsbibliothek in PHP8.0: Ereignis Ereignisverarbeitungsbibliothek in PHP8.0: Ereignis May 14, 2023 pm 05:40 PM

Ereignisverarbeitungsbibliothek in PHP8.0: Ereignis Mit der kontinuierlichen Entwicklung des Internets wird PHP als beliebte Back-End-Programmiersprache häufig bei der Entwicklung verschiedener Webanwendungen verwendet. In diesem Prozess ist der ereignisgesteuerte Mechanismus zu einem sehr wichtigen Teil geworden. Die Ereignisverarbeitungsbibliothek Event in PHP8.0 bietet uns eine effizientere und flexiblere Ereignisverarbeitungsmethode. Was ist Event-Handling? Event-Handling ist ein sehr wichtiges Konzept bei der Entwicklung von Webanwendungen. Ereignisse können jede Art von Benutzerzeile sein

Wie nutzt die Uniapp-Implementierung JSBridge für die Interaktion mit Native? Wie nutzt die Uniapp-Implementierung JSBridge für die Interaktion mit Native? Oct 20, 2023 am 08:44 AM

Wie Uniapp die Verwendung von JSBridge für die Interaktion mit Native implementiert, erfordert spezifische Codebeispiele. 1. Einführung in den Hintergrund Bei der Entwicklung mobiler Anwendungen ist es manchmal erforderlich, mit der nativen Umgebung zu interagieren, z. B. einige native Funktionen aufzurufen oder einige native Daten abzurufen. Als plattformübergreifendes Framework für die Entwicklung mobiler Anwendungen bietet uniapp eine bequeme Möglichkeit, mit nativen Geräten zu interagieren und JSBridge für die Kommunikation zu verwenden. JSBridge ist eine technische Lösung für das Frontend zur Interaktion mit dem mobilen nativen Ende.

Win10 kann das Mikrofon-Eingabegerät nicht finden Win10 kann das Mikrofon-Eingabegerät nicht finden Jan 03, 2024 am 10:49 AM

Bei Verwendung des Win10-Systems kann es zu dem Problem kommen, dass das Eingabegerät nicht verwendet werden kann. Was ist die Situation? Im Allgemeinen können Sie den Treiber aktualisieren oder einrichten. Schauen wir uns das spezifische Tutorial an. Win10 kann die Mikrofonlösung des Eingabegeräts nicht finden. 1. Klicken Sie im Startmenü auf: →→. 2. Stellen Sie sicher, dass das Element aktiviert ist. Wenn es nicht geöffnet ist, klicken Sie darauf und das Problem wird im Grunde gelöst. 3. Klicken Sie mit der rechten Maustaste auf das Startmenü und wählen Sie Enter. 4. Überprüfen Sie, ob der Originaltreiber installiert ist und ob er normal installiert wird. PS: Es wird empfohlen, den Treiber zu deinstallieren und dann von der Original-CD des Motherboards zu installieren oder auf der offiziellen Website des Motherboard-Herstellers den Originaltreiber herunterzuladen und erneut zu installieren. 5. Klicken Sie mit der rechten Maustaste auf das Lautstärkesymbol in der Taskleiste des Computers und wählen Sie

See all articles