Isometrische Ansicht drehen [Nicht gelöst!]

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Isometrische Ansicht drehen [Nicht gelöst!]

    Hey Leute, ich bin gerade dabei ein Isometrisches Game zu machen,
    dabei verwende ich 3d Modelle und rendere mir die ganzen Ansichten heraus die ich benötige,...

    Ich hab von jedem Objekt 32 Richtungen

    meine Frage ist nun ob ihr eine Möglichkeit kennt wie ich möglicherweise diese Ansicht die ich habe einfach drehen kann so das es aussieht wie bei einem echten 3d Game,.... ich habe mir überlegt eigentlich müsste das doch gehen das ich alle Objekte neu ausrichte und die jeweilige passende Ansicht drawe... (reine Theorie XD)

    mein Bezugsobjekt dazu soll immer mein Player sein... also z.b wenn ich die Rechte Maus gedrückt halte kann ich die Ansicht der Welt drehen....

    Ich dachte mir das mir die Funktionen Lengthdir_x Lengthdir_y vielleicht dabei helfen könnten
    aber ich hab noch keine richtige Idee wie ich das ganze umsetzen könnte bzw soll ^^

    Also eine Herausforderung für alle Game Maker Cracks :P

    Wie mache ich so eine Transformation bzw. klappt das überhaupt oder ist es einfach zu aufwendig?


    Grüßle Blayde

    Ps: Mir ist durchaus Bewusst das es für so eine Art game bessere Programme wie z.b. Unity.... gibt, aber ich kenn mich mit dem Gamemaker recht gut aus und hab keine Lust mich neu wo einzulernen ^^

    Mit den 3d Funktionen des Gamemakers habe ich leider noch nie gearbeitet, und ich würde gerne bei 2D bleiben bzw fake 3d XD

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Blayde ()


  • Mit den 3d Funktionen des Gamemakers habe ich leider noch nie gearbeitet, und ich würde gerne bei 2D bleiben bzw fake 3d XD

    dann bleib doch bei 2D XD

    naja, ich habe sowas auch schonmal versucht.... leider ohne richtigen erfolg.
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • Jo das würde ich ja gerne das Problem ist nur das es bei meinem Game manchmal ganz hilfreich wäre wenn man die Ansicht drehen könnte, da man sonst schwierigkeiten hat wenn man hinter Wänden steht,...

    Außerdem interessiert es mich ob das möglich ist,.... so ne Transformation sollte eigentlich funktionieren, die frage ist halt wie gut es geht und wie performance lastig das ganze dann wirklich ist...

    Es muss auch nicht frei drehbar sein sondern kann auch immer z.b um 45 oder 90 grad springen


    EDIT:

    Bis jetzt hab ich mir folgendes gedacht, ich berechne die Entfernung und den Winkel eines jeden Objekts und drehe alle um den gewünschten Winkel auf einer kreisbahn wobei mein Player der Mittelpunkt ist.... was ich allerdings dann noch brauche ist die Information wie sich die Häuser/ Objekte ausrichten müssen je nach Winkel....

    Hat jemand ne idee, bzw genug Mathematisches Verständnis um mir hilfestellung zu geben?

    Warscheinlich ist das größte Problem die Perspektive, da diese Isometrisch ist führt es meiner Überlegung nach dazu das bei anderen Winkeln als 0/90/180/270 objekte die aneinander gereit sind sich nicht mehr perfekt aneinanderreichen da es hier unterschiede im Winkel gibt

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Blayde ()

  • Blayde schrieb:

    Warscheinlich ist das größte Problem die Perspektive, da diese Isometrisch ist führt es meiner Überlegung nach dazu das bei anderen Winkeln als 0/90/180/270 objekte die aneinander gereit sind sich nicht mehr perfekt aneinanderreichen da es hier unterschiede im Winkel gibt

    Ich denke die 90° Methode wäre noch die einfachste und auch am leichtesten realisierbare, das einzige Problem was du da hättest wäre das du Penibel darauf achten müsstest das dein Origin der Objekte auch wirklich im Center der Fläche ist welche Simultan den Boden berührt. Sonnst bekommst du Fehlanzeigen beim drehen.

    Falls du doch kleinere Drehwinkel benutzen willst würde ich ein Sufrace zeichnen lassen welches du dann nur bevor es gezeichnet wird nur 1 mal drehen musst. Also du gaukelst dem Spieler nur vor das die Welt sich dreht. So brauchst du eigentlich nur die Bewegungsrichtung, die Schussrichtung und natürlich die Objekt-depth um den Drehwinkel erweitern.
  • Ich hab es dir hier mal im Anhang Visualisiert wie ich das meine :D

    Am besten nimmst du ein unsichtbares Objekt namens obj_view welches den View ausfüllt.
    Dieses lässt du sich immer im Winkel drehen in welchen der Spieler angeblich schaut, genauso wie du die Schussrichtung entgegengesetzt um diesen Winkel drehst.
    Deinen Objekten entziehst du das Privileg Visible.
    Im Step Event deiner anzuzeigenden Objekte fügst du eine Funktion ein welche prüft ob sie mit diesem Objekt obj_view kollidieren und wenn ja die ID und die depth von sich selbst in eine Liste eintragen.
    Im Draw Event von obj_view lässt du dann diese Liste nach der depth sortieren und lässt die Objekte anhand der ID mit dem momentanen angle Wert mal -1 auf ein Surface zeichnen.
    Am Ende des Draw Events zeichnest du dann noch das Surface mit dem momentanen angle Wert.
    Bilder
    • Tutorial_Isometrie_drehen.jpg

      204,65 kB, 1.361×1.558, 274 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Balls of Steel ()

  • Die Idee klingt super nur irgendwie krieg ichs nicht wirklich hin :(

    Wärs möglich das du mir en kleines Exampel bastelst anhand dem ich deine Vorgehensweise/Umsetzung sehen kann?


    Hoffnungsvoll
    Blayde


    EDIT:

    Gibts niemand der noch ne Idee hat wie man das ganze lösen könnte?
    Wäre cool wenn ich das in meinem Game verwenden könnt,... und vielleicht interessiert es noch den ein oder anderen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Blayde ()

  • Ich hab jetzt mal ein wenig im Internet gestöbert und folgendes Tutorial gefunden

    Isometrisches Drehen
    das ich eigentlich total klasse find,
    habs auch ausprobiert und auf meine Situation konvertiert, so ganz fehlerfrei ist es noch nicht, aber der Ansatz stimmt schon, mein Problem dabei ist jetzt aber folgendes.

    Wenn mein Player zu nahe an den Spielfeldrand kommt, dann kann ich das Spielfeld nicht mehr drehen, bzw den View,
    gibts dafür ne lösung oder muss ich dafür sorgen das er nie den Rand erreichen kann?


    Falls jemand noch en anderen Lösungsvorschlag hat, immer her damit =)

    Grüßle Blayde
  • Ich hatte grad Lust irgentwas zu machen und hab ein bisschen rumprobiert (siehe Anhang). :P

    Ich keine Kommentare geschrieben, vieles ist aber selbsterklärend. objCenter ist der "Drehpunkt", die anderen Objekte verschiedene Isometrische Gebäude: Ein statischer Klotz (der nicht rotiert), eine Säule(muss nicht rotieren, ist schon rund), und ein rotierendes liegendes Quadrat(benutzt 4 Subimages für die Rotation). Es basiert also komplett auf Sprites und benutzt keine Transformationen.

    Zu deinem jetzigen Problem kann ich nicht viel sagen, da ich nicht ganz verstehe, warum du den View nicht mehr drehen kannst :/
    Dateien
  • @ peyj

    danke für deine Mühe,

    ich hätte es mir gerne angeschaut nur leider kann ichs net öffnen, der Gamemaker meint ständig, file does not exist

    Also ich benutze Game Maker Pro 8.1,... welche Version hast du bzw kann des daran liegen das du Studio benutzt?

    Grüßle Blayde