Ergebnis 1 bis 20 von 354

Thema: It's Quiz Time!!

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    erstens wäre dass 4 conditional branches stadt eine, und zweitens wäre das kein Kreis sondern ein Viereck.
    dein vorschlag wurde etwa so aussehen
    Code:
    xxxxxxx
    xxxxxxx
    xxxxxxx
    xxxOxxx
    xxxxxxx
    xxxxxxx
    xxxxxxx

  2. #2
    Pseudocode:

    Code:
    XTemp = ZentrumobjektX - ZielobjektX 
    YTemp = ZentrumobjektY - ZielobjektY
    (Differenzen berechnen)
    
    If XTemp == -4
      If YTemp >=-1
        If YTemp <=1
          DRIN
        End
      End
    End
    
    If XTemp == -3
      If YTemp >=-2
        If YTemp <=2
          DRIN
        End
      End
    End
    
    If XTemp == -2
      If YTemp >=-3
        If YTemp <=3
          DRIN
        End
      End
    End
    
    If XTemp == -1
      If YTemp >=-4
        If YTemp <=4
          DRIN
        End
      End
    End
    
    If XTemp == 0
      If YTemp >=-4
        If YTemp <=4
          DRIN
        End
      End
    End
    
    If XTemp == 1
      If YTemp >=-4
        If YTemp <=4
          DRIN
        End
      End
    End
    
    If XTemp == 2
      If YTemp >=-3
        If YTemp <=3
          DRIN
        End
      End
    End
    
    If XTemp == 3
      If YTemp >=-2
        If YTemp <=2
          DRIN
        End
      End
    End
    
    If XTemp == 4
      If YTemp >=-1
        If YTemp <=1
          DRIN
        End
      End
    End
    Ich gehe hiermit die X-Spalten nacheinander ab und grenze die dafür erlaubten Y-Werte ein.
    Ist eigentlich ganz simpel.

    Um den Fall zu integrieren, dass es ausserhalb liegt, benutzt man entweder nen doppelten
    Switch oder verschachtelt die Fälle in ELSEs.

    Geändert von MagicMaker (21.11.2010 um 16:23 Uhr)

  3. #3
    Code:
    Event X = Event X - Hero X
    Event Y = Event Y - Hero Y
    if(Event X < 0) 
      Event X *= -1
    if(Event Y < 0)
     Event Y *= -1
    Event X  += Event X
    if(Event X <= AbstandInTiles) {  // zb 4
       //Held steht im Bereich Karoförmig (oder was das da is xD)
       ....
    }
    Für ein richtigen Kreis geht btw auch (Man muss nur das zusammen rechnen von X und Y anders machen)

    Edit:
    Habt ihr beiden da oben nicht gelesen das nur ein "Branch" genutzt werden soll?

    Geändert von R.D. (21.11.2010 um 16:59 Uhr)

  4. #4
    Ich muss mich schlecht ausgedrückt haben. Es soll nur 1 bedingung / conditional branch / fork / if statement benutzt werden.

    Es geht aber in die richtige richtung, ist schon richtig erstmal den differenzen zu finden.

    R.D. ist schon auf was drin, ist aber immernoch 3 Conditional branches, und es ist immernoch da nicht wirklich ein Kreis, sondern ein anderem karoförmiges Viereck wie du selber geschrieben hast. Und es ist genau nach diesem "extra" mit dem zusammen rechnen von X und Y ich aus bin.
    mit diesem extra braucht man die beiden branches die nachguckt ob eine der werte negativ sind nicht.

  5. #5
    Setz auf den Kreis ein Spezialterrain und catche die TerrainID von dem Zielobjekt.
    Das geht mit einer einzigen Bedingung.

  6. #6
    @ Kazesui

    Vielleicht ja auch so?:



    Ich denke mal das war nicht gemeint aber so ungefähr würd
    ich es machen und dann bei jemdem Schritt das Ereigniss neu aufrufen lassen.

    Lg
    Multi-Master1988

  7. #7
    Das Problem in deiner Variante ist, du wolltest sicher abfragen ob jemand auf einer genauen
    Stelle steht (nichtmal das scheint korrekt gelöst worden zu sein). Hier haben wir allerdings
    einen Toleranzkreis der mit einer einzigen Bedingung abgefragt werden soll, ausser der
    Möglichkeit in meinem vorherigen Post fällt mir dazu nicht wirklich nochwas ein.

    Ausser vielleicht mit ein paar Pointern die die gleiche Fork immerwieder neu aufrufen,
    nur dadurch halt verändern.

  8. #8
    haha, mist. Hab vergessen irgend eine einschränkung gegen terrain / event ID reinzutun. War nicht die lösung an die ich gedacht habe, und ne besonders gute lösung ist es auch nicht da es dann ziemlich statisch bleibt, aber es ist eine lösung, desshalb werd ich es für korrekt halten, und sagen dass MagicMaker dran ist.

    Die lösung nach dem ich war, benutzt dass "x²+y² = 1" ein kreis bildet, also könnte es so gelöst werden:
    Code:
    ziel_x -= zentrum_x
    ziel_y -= zentrum_y
    ziel_x *= ziel_x
    ziel_y *= ziel_y
    ziel_x += ziel_y
    if( ziel_x < abstand)
       drin
    end
    wo "abstand" ein wert im bezug von dem kreis wäre, was normaleweise von n² bis (n+1)² liegen sollte, wo n dem radi von mitte bis aussen in entweder horizontaler oder vertikaler richtung entspricht.

  9. #9
    Zitat Zitat
    und ne besonders gute lösung ist es auch nicht da es dann ziemlich statisch bleibt
    Deswegen würd ich die auch nie wirklich anwenden. Dazu muss das schon sehr strikt sein.

  10. #10
    MM will nichts fragen. Daher:

    Welcher Bug bei "Show Message" kann das Spiel abstürzen lassen?

  11. #11
    Zitat Zitat von Cherry Beitrag anzeigen
    MM will nichts fragen. Daher:

    Welcher Bug bei "Show Message" kann das Spiel abstürzen lassen?
    Falschreferenzieren von Variablen, wie bei der Nonne in deinem Testprojekt.

  12. #12
    Richtig.

    Du bist.

  13. #13
    Folgefrage: Wie behebt man den Fehler? xD

Berechtigungen

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