Ich arbeite an einem HTML5 Canvas / Javascript basierten Spiel. Es ist ein Kampfjet-Spiel, nachdem ich eine bestimmte Punktzahl übergeben habe, wird mein Hauptboss spawnen. Alles funktioniert so, wie ich es wollte, aber ich weiß nicht, wie man boss shooting macht. Mein Jet feuert eine einzelne Kugel senkrecht ab, aber meine Idee war, den Boss in zufällige Richtungen schießen zu lassen. Mindestens 3 Kugeln gleichzeitig in verschiedenen Richtungen. Ich benutze jQuery überhaupt nicht nur normales JS. Boss bewegt sich horizontal von der Grenze zu einer anderen Grenze, aber er schießt nicht, also brauche ich vielleicht ein bisschen Hilfe. Irgendwelche Ideen ?
Rote Linien sind meine Idee des Schießens. Ich bin in der Lage, Kugel / Jet-Kollision zu überprüfen.
Irgendein Code von Boss (vertikal) Schießen.
%Vor%und so sieht es aus. Es feuert eine einzelne Kugel von der Nase der Bosse ab und geht runter, bis es seinen Y-Wert 0 erreicht und wieder auftaucht.
Ich habe versucht, zu this.drawY += 10;
auch this.drawX += 1;
hinzuzufügen, aber so bewegt es sich überhaupt nicht.
Irgendwelche Ideen, wie man das Verzeichnis der Kugel ändert?
LIVE DEMO (Mausklicks verwenden, um Geschosse abzufeuern)
zchs Antwort ist in Ordnung, aber das Problem ist, dass das HTML5 canvas -Koordinatensystem und der trigonometrische Zyklus anders als üblich ist und wir einige mathematische Tricks machen müssen, um den Winkel zu berechnen, der der Geschwindigkeitsaktualisierung und entspricht das Zeichnen der Kugeln.
Hier folgt der Code, den ich für die Kugeln verwendet habe:
%Vor% Die Methoden update
und draw
sollten in jedem Frame für jedes Geschoss aufgerufen werden.
Vergleichen Sie nun diesen Code in der Update-Funktion
%Vor%mit dem Code unten, wie von zch beantwortet.
%Vor%Es ist nur eine mathematische Transformation, um unser Winkelsystem mit der Canvas-Rotate-Methode zu vergleichen. Dies wird erreicht, indem das erste System um 90 Grad gedreht wird.
Beachten Sie, dass Sie auch folgendermaßen vorgehen können:
%Vor%Trigonometrie ist dein Verbündeter, um lustige Spiele zu machen!
Denken Sie daran, die Feuerfunktion für Ihren Chef zu erstellen:
%Vor% Der obige Code setzt voraus, dass Ihr Chef ein Array von bullets
hat.
Sehen Sie sich den vollständigen Code an und spielen Sie eine Demo
Sie müssten Kugeln aufstellen. Für jedes Geschoss müssen Sie seine Position (x, y) und Geschwindigkeit entlang jeder Achse (vx, vy) speichern. Erhöhen Sie während jeder Zeiteinheit die Position um die Geschwindigkeit:
%Vor%Sie wollen wahrscheinlich Kugeln in einem zufälligen Winkel, aber konstanter Geschwindigkeit. Sie können Geschwindigkeiten mit Trigonometrie erzeugen:
%Vor%Sie können den Winkel auf einen kleineren Bereich begrenzen, wenn Sie nicht in alle Richtungen schießen möchten. Zum Beispiel für den Bereich 5 / 4π bis 7 / 4π:
%Vor%Tags und Links javascript canvas