Stirb, obj_wall

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

    • Stirb, obj_wall

      Ach, wie wir ihn alle lieben :
      Kein "precise collision checking" nötig. Er braucht keinen Step-Code, und auch sonst keine Events. Er ist einfach nur da...
      Wie eine Pest, die sich in meinem Programm breit macht! Beim letzten Zählen waren es schon 2200, Tendenz steigend.
      Da hört auch bei mir der Spaß auf. Es soll ja auch auf Deinem Rechner noch Platz für rund 1000 bewegte Einheiten sein. Da muß man eben sparen, wo man kann.
      Schließlich ist ein Objekt ein Objekt, und man soll nicht mit Objekten um sich werfen, wo sich's vermeiden läßt.

      Ich habe nochmal einen alten Code zum Komprimieren rausgekramt. Den hatte ich mal für ein 3D-Labyrinth ausprobiert. Es wird jeweils längs und quer geprüft, wieviele Wall-Elemente nebeneinanderliegen, und dann alle bis auf eins gelöscht. Das eine wird dann entschprechend skaliert.
      Klappt ganz gut, aus den 2200 Teilen mache ich so rund 600, aber nur weil mein Code suckt. Wäre er perfekt, blieben geschätzte 200-300 übrig.
      Hat aber jetzt das Problem, daß die hübsche Textur nicht mehr ganz so hübsch aussieht... weil skaliert. Das war damals auch der Grund, warum ich die Methode verworfen hatte... und jetzt wieder. Obwohl besagtes Problem nur für Optik gilt und nicht für Kollisionen.
      Ich habe nämlich noch ein Problem: Ich kann nicht einfach Tiles verwnden, weil ich mit Iso angefangen habe und jetzt auf 3D umstelle. Ich kann nicht mehr umkehren, Baby, ich bin schon zu weit in die Sucht nach besserer Grafik hineingesackt... Shaders, Cameras, Models, Licht und Schatten... alles viel zu GEIL!

      Was also soll aus dem Block werden? Er kommt weg!
      Im Room Editor kann er ruhig bleiben. Aber sobald er seinen Platz im control.mp_grid gefunden hat, kann dieser häßliche Klotz sterben. Ich werde ein Foto von diesem Grid machen, das mir so ans Herz wachsen soll. Wenn ich mal wieder Sehnsucht nach dem alten Kollisionsobjekt obj_wall habe, kann ich ja das nehmen. Diesmal aber mit "precise collision checking" an, und aus Protest nenne ich es... "obj_Wall"

      Ach ja, und für die Visualisierung mach ich ein 3D Model. Grundriß nachzeichnen, extrudieren, texturieren. Boah, voll der Aufwand.
    • Wolltest du das einfach mal loswerden oder worum geht's? :D
      █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
      █████ ███████ ███ your █████ ████ government.
    • Ich fand den Beitrag auf jeden Fall lesenswert... vielleicht sollte er eine Biographie des "obj_wall" schreiben... Von der Geburt bis zum Tod~


      Ich würds lesen...
      So far, Schattenphoenix~
      _____________________________________________________________________________
      "Who needs a stairway to heaven...
      If there is an elevator to hell... ?
      "
      - Vergessen
      "Auch ein perfektes Chaos ist etwas vollkommenes."
      - Jean Genet
    • *schnüff* ich habe objWall ganz vergessen. Aber ich habe mir ein eigenes objWall geschaffen, weil es mir lästig wurde den Pixel unten links immer zu füllen (ja, der ist bestimmt nicht jedem aufgefallen) und ich einen stärkeren Kontrast brauche (Disordia ist schon schwarz genug).

      Und nur um dich zu beruhigen: Mein Code zum Reduzieren von Walls suckt auch - ich benutze die gleiche Methode und bin nicht ganz glücklich.
      Bilder
      • objWall.PNG

        157 Byte, 26×24, 321 mal angesehen
    • Danke Melancor, dein Thread hier hat mich für eines meiner Spiele inspiriert, sodass
      an einer Stelle die Anzahl der Blöcke von 1141 auf 644 gefallen ist. Vielen Dank :thumbsup:
      ___________________________________________________________
      Beware of wild pointers
      ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
    • Nun hab ich mal nachgedacht... und ich denke, wenn man sich da ein wenig reinkniet, kann man son Code relativ einfach relativ gut machen... nicht perfektionieren aber ich denke schon, dass sich einiges tun könnte.

      Man könnte z.B. auf Rechtecke zurückgreifen anstatt Linien.
      Dementsprechend würde man schauen, wieviele nebeneinander sind und von jedem dieser Blöcke nach oben und unten schauen. Dann würde man die kleinste dieser Zahlen als basis benutzen und dann hscale und vscale kombinieren. wenn man nun gewisse richtlinien benutzt, oder den GM ein wenig vorrechnen lässt, dürfte das einige relativ gute Resultate geben. Zumindest besser als nur linien zu verbinden... denke ich.

      Zu den Rechnungen wäre es evtl interessant, die Fläche (a*b ~ man erinnere sich an 5. Klasse Mathematik) zu berechnen und zu vergleichen um das beste resultat zu gewinnen.

      Ansonsten, um es leichter zu halten, könnte man zumindest horizontal und vertikal prüfen wieviele es sind und da das bessere ergebnis umsetzen. Würde allerdings, wenn es nicht eine einheitliche Fläche ist, etwas komisch aussehen =D
      So far, Schattenphoenix~
      _____________________________________________________________________________
      "Who needs a stairway to heaven...
      If there is an elevator to hell... ?
      "
      - Vergessen
      "Auch ein perfektes Chaos ist etwas vollkommenes."
      - Jean Genet
    • Naja du würdest in einer While-Schleife schrittweise (sprite_height bzw. sprite_width) abfragen, ob da noch ein Objekt ist.

      Ich denke das wäre sehr rechenintensiv, aber da es nur einmal passiert, denke ich ist es das kleinere übel.

      Was wichtig ist, ist, dass du wenn du nach unten gehst, auch zur Seite gehst und dann auswertest, welcher der höchste Wert ist (um Rechtecke zu haben)
      Dann benutzt du die sprite_width/height und fängst beim nächsten möglichen Block an.
      Musst es halt als Code ausarbeiten, ich habs nicht getan, aber wenn du ein wenig ausprobierst kriegst du es sicherlich hin ;)
      So far, Schattenphoenix~
      _____________________________________________________________________________
      "Who needs a stairway to heaven...
      If there is an elevator to hell... ?
      "
      - Vergessen
      "Auch ein perfektes Chaos ist etwas vollkommenes."
      - Jean Genet