So verwenden Sie CocosCreator zum Erstellen eines Schießspiels

So verwenden Sie CocosCreator zum Erstellen eines Schießspiels

Analysieren Sie die Produktionsschritte:

1. Ressourcen vorbereiten und Szene erstellen

Sie können Ressourcen online finden oder meine verwenden. Erstellen Sie einen Ordner und legen Sie die Ressourcen im Ordner „res“ ab.

Erstellen Sie die Szene:
Schritt 1: Erstellen Sie einen einfarbigen Sprite-Hintergrund (Skript), legen Sie die Farbe fest und fügen Sie eine Widget-Komponente hinzu, damit er den Bildschirm ausfüllt.

Schritt 2: Erstellen Sie top und button leere Knoten als obere und untere unter dem bg Knoten und fügen Sie dann Dornknoten zu den beiden leeren Knoten hinzu (ziehen Sie das Bild einfach in den obersten Hierarchiemanager). Jetzt müssen wir top與button Knoten eine Layout組件hinzufügen und die Eigenschaften wie in der Abbildung gezeigt festlegen. Auf diese Weise können Sie sehen, dass sich oben und unten auf dem Bildschirm Dornen befinden.

Schritt 3: Fügen Sie der Szene auf die gleiche Weise Spieler, Kugeln und feindliche Flugzeuge hinzu, erstellen Sie einen Label-Knoten zur Anzeige des Punktestands und passen Sie die Position an;

2. Code steuert das Spiel

Schritt 1: Erstellen Sie ein game und mounten Sie es auf dg -Knoten;

Schritt 2: Bearbeiten Sie den Code und fügen Sie in properties Eigenschaften hinzu, um die Knoten Spieler, Kugel und Feind zu verknüpfen, und ordnen Sie sie dann im Editor zu.

Schritt 3: Steuerung der Codelogik, einschließlich Initialisierung von Spielern, Kugeln, Feinden; Registrieren von Überwachungsereignissen; Schreiben von Aktionsfunktionen; Wertungsbeurteilung usw.;

Vollständiger Code:

cc.Klasse({
    erweitert: cc.Component,

    Eigenschaften:
        Spielerknoten: cc.Node,
        Feindknoten: cc.Node,
        Feuerknoten: cc.Node,
        Punktestand: cc.Label,
    },
    
     beim Laden () {
        dies.playLoad();
        dies.fireLoad();
        dies.enemyLoad();
         dies.node.on("touchstart",dieses.fire,dieses);
         
     },

     update (dt) {
          wenn (Math.abs(this.fireNode.y-this.enemyNode.y)<(this.fireNode.height/3+this.enemyNode.height/3)
            &&Math.abs(dieser.fireNode.x-dieser.enemyNode.x)<(dieser.fireNode.width/3+dieser.enemyNode.width/3)){
              console.log("Besiege das feindliche Flugzeug");
              this.scoreNode.string= ++this.score; //Trefferpunktzahl this.fireNode.stopAction(this.fireAction);
            dieser.enemyNode.stopAction(diese.enemyAction);
            dies.enemyNode.active=false;
            dies.fireNode.active=false;
            this.fireLoad();//Kugeln initialisieren this.enemyLoad();//Feindliche Flugzeuge initialisieren}

     },

     // Ereignisüberwachung schließen onDestroy(){
        dies.node.off("touchstart",dieses.fire,dieses);
     },
    // Anfänglicher Spieler playLoad(){
        dies.score=0;
        dieser.playerNode.y=-cc.winSize.height/4;
        
    },
    //Bullet fireLoad() initialisieren{
        dies.fireNode.active=true;
        dies.isFire=false;
        dieser.fireNode.x=dieser.playerNode.x;
        dieser.Feuerknoten.y=dieser.Spielerknoten.y+dieser.Spielerknoten.Höhe;
    },
    // Initialisiere den Feind enemyLoad(){
        dieser.enemyNode.active=true;
        this.enemyNode.x=Math.random()* cc.winSize.width;
        dieser.Feindknoten.y=cc.winSize.height/3;
        sei x = cc.winSize.width/2-this.enemyNode.width/2;
        sei y=Math.random()* cc.winSize.height/4;
        Lassen Sie seq = cc.repeatForever (cc.sequence (cc.moveTo (1,5, cc.v2 (-x, y)), cc.moveTo (1,5, cc.v2 (x, y))));
        
        diese.enemyAction = diese.enemyNode.runAction (seq);
    },
    //Lade das Spiel bei Tod neu, Dear(){
        console.log("Tod");
        cc.director.loadScene("Spielszenen");
    },


    // Feuer, Kugel, Feuer(){
         wenn(dies.istFeuer) return;
         dies.isFire=true;
        console.log("Starten");
         var Feueraktion = cc.sequence(
             cc.moveTo(1,cc.v2(dieser.playerNode.x,cc.winSize.height/2)),
             cc.callFunc(()=>{
                dies.lieb();
            }));
        diese.fireAction = diese.fireNode.runAction(fireaction);
        console.log("Ende des Starts");
     }

});

Endergebnis

Oben finden Sie Einzelheiten zur Verwendung von CocosCreator zur Realisierung von Schießspielen. Weitere Informationen zur Realisierung von Schießspielen mit CocosCreator finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung des Cocoscreater-Prefabs
  • So verwenden Sie residente Knoten für die Ebenenverwaltung in CocosCreator
  • So verwenden Sie CocosCreator zur Tonverarbeitung bei der Spieleentwicklung
  • CocosCreator ScrollView-Optimierungsreihe: Frame-Laden
  • Detaillierte Erläuterung des CocosCreator-Projektstrukturmechanismus
  • So verwenden Sie den CocosCreator-Objektpool
  • So zeigen Sie in CocosCreator eine Textur an der Wischposition an
  • Organisieren Sie die allgemeinen Wissenspunkte von CocosCreator
  • Umfassende Erklärung zum CocosCreator Hot Update
  • CocosCreator klassisches Einstiegsprojekt flappybird
  • CocosCreator Universal Framework Design Network
  • So verwenden Sie einen Gamecontroller in CocosCreator

<<:  Anwendungsbeispiele für die try_files-Direktive von Nginx

>>:  So vermeiden Sie die URL-Zeitzonenfalle in MySQL

Artikel empfehlen

So lösen Sie das Problem, dass der Docker-Container keinen Vim-Befehl hat

Finden Sie das Problem Als ich heute versuchte, d...

Grundlegendes zu MySQL-Clusterindizes und wie Clusterindizes wachsen

In dieser Anmerkung beschreiben wir kurz Was ist ...

Vue3+Skript-Setup+ts+Vite+Volar-Projekt

Inhaltsverzeichnis Erstellen Sie ein Vue + TS-Pro...

Docker-Compose-Schritte zum Konfigurieren der Spring-Umgebung

Vor Kurzem musste ich das Projekt für die Mitglie...

Ausführliche Erläuterung der Standortpriorität von Nginx

Standortausdruckstyp ~ bedeutet, dass ein regulär...

Linux-Methodenbeispiel zum Anzeigen aller Informationen des Prozesses

Auf dem Server läuft ein Taskprozess. Wenn wir ih...

Implementierung des React-Konfigurations-Subroutings

1. Die Komponente First.js hat Unterkomponenten: ...

Die normale Methode der MySQL-Deadlock-Prüfungsverarbeitung

Normalerweise wird bei einem Deadlock die Verbind...