Ergebnis 1 bis 5 von 5

Thema: SpaceShooter - Asteroidenproblem

  1. #1

    SpaceShooter - Asteroidenproblem

    Hi,

    ich arbeite gerade an einem Space Shooter Minigame in dem Asteroiden von oben kommen, denen der Spieler ausweichen muss/soll/kann.

    Ich möchte die Asteroiden so Programmieren, dass sie, wenn sie am raumschiff vorbeigeflogen, oder abgeschossen wurden an eine zufälligen position am oberen rand der map wieder beginnen nach unten zu fliegen.

    Ich weiß aber nicht genau wie ich das anstellen soll...

    Könnt ihr mir helfen?

    Gruß
    Rash

  2. #2
    lass ne zufallszahl (0 bis (breite der map in tiles - 1)) generieren -> in eine variable speichern

    und dann: "change event location" als x deine variable und y ne konstante (=0) die legst du vorher an...
    somit werden die asteroiden zufallsgesteuert gerespawnt

  3. #3
    Muss ich dann für jeden Asteriden eine Variable ändern?
    Weil bei einer mussten die ja, wenn sie gleichzeitig gerespawnd werden, an derselben stelle rauskommen...

  4. #4
    Zitat Zitat von Rash
    Weil bei einer mussten die ja, wenn sie gleichzeitig gerespawnd werden, an derselben stelle rauskommen...
    Du fragst doch jeden Astroiden getrennt ab (anders gehts ja net weil man Variablen nicht als Event-ID nutzen kann), also wird er auch getrennt gerespawnt.

  5. #5
    sprich du brauchst nur eine variable...
    allerdings könnte es passieren, dass die asteroiden an der gleichen stelle gerespawnt werden!
    in diesem fall lässt du einmal die variable in eine temporäre speichern
    um eine teleportposition mit der vorherigen zu vergleichen

    z.b.

    Code:
    //die variable temp_var muss anfangs auf -1 gesetzt werden (parallel oder autostart)
    if temp_var == -1
     xposition = random(0 bis (mapbreite-1))
     temp_var = xposition
     eventteleport(xposition, 0)
    else
     schleife:
     xposition = random(0 bis (mapbreite-1))
     if xposition == temp_var
      goto schleife
     end
     eventteleport(xposition, 0)
     temp_var == -1
    end
    
    //die variable temp_var wird bei jedem teleport gesetzt (wenn sie vorher -1 beträgt
    //bei einem erneuten teleport dient sie als vergleichswert,  um zu guggen ob die neue
    //position ungleich der alten is,  und wird anschliessend wieder auf -1 gesetzt... dann wiederholt sich das ganze

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •