geradeaus ins verderben

Posted By: Otter

geradeaus ins verderben - 03/08/11 23:11

Hallo Freunde!

Ich weis, das thema KI hatten wir gerade erst, aber
ich brauch dringend eine idee, damit mein Koopa nicht in sein verderben stürtzt. eek


Es gibt da so eine function die ein unsichbares "ding" erstellt, welches permanent rechnet ob es in einem block steckt oder nicht.
Ich hab völlig vergessen wie diese zeile heißt... tired
ich hoffe ihr wisst welche "function" ich meine.

Links und rechts unter den Füßen des kleinen kerls könnte ich dann bestimmen wann's schluss ist mit Vorwärts geradeaus.



Allerdings -und das ist der eigentliche grund dieses Threads- frage ich mich ob es nicht auch anders geht.
Wenn ich mich recht erinnere wurde diese "function" als langsam beschrieben.
Und das kann ich mir bei 20 Gegnern gleichzeitig nicht erlauben.


Rettet den Koopa!
OTTER

Posted By: Pappenheimer

Re: geradeaus ins verderben - 03/08/11 23:19

Wenn die Gegner nur immer den gleichen Weg hinundhergehen, bräuchtest nur einmal die Endpunkte feststellen, und speicherst sie dann in einem ihrer Skills.
Du könntest sie aber auch einfach generell einen c_trace vor sich herunterschicken lassen, wenn der nur kurz ist, z.B. ein-zwei Blocks lang, dürfte er auch nicht zu langsam sein.
Gegner, die weit außerhalb des Views sind, könnten auch "abgeschaltet" werden.
Posted By: Uhrwerk

Re: geradeaus ins verderben - 03/09/11 00:28

Also wenn Du die Standardbeleuchtung von GS benutzt würde ich Dir empfehlen einfach entity->floor_dist auszuwerten. Die wird ohnehin berechnet und dann kannst Du Sie einfach auslesen. Wenn Sie viel größer als der Betrag von entity->min_z ist, dann ist der Koopa am Abgrund und sollte umdrehen. Die Funktion die Du meinst ist wahrscheinlich c_trace oder c_content.

Wenn das ganze nicht allzu dynamisch sein soll und sich der Koopa nur in einer Dimension bewegt, dann kannst Du auch einfach beim Laden des Levels ein paar Testtraces machen und dann speichern wo die Begrenzungen für ihn sind. Das hätte den Vorteil, dass es nicht so aussieht als ob er schon hal runterfallen würde, wenn er umdreht.
Posted By: Damocles_

Re: geradeaus ins verderben - 03/09/11 01:45

wenn Deine Gegner immer nur auf einer Platform links/recht patroillieren,
und du nicht viel Programmieren willst,
würd ich wie Pappenheimer vorgeschlagen hat einfach
2 Skills in WED für jede Einheit editieren, die für die maximale links und rechts Bewegung stehen.

Dann dreht die Einheit um, wenn sie an diesen Rand-wert gelangt ist. (if(my.x> my.skill5) -> umdrehen oder so)

So brauchst Du nicht den Untergrund zu überprüfen.
(ist halt nur dann mehr manuelle Arbeit die Werte einzutragen)

----

Apropos: wenn man mit traces den Weg überprüft, wäre es
toll eine AABB - Axis Aligned Bounding Box zu haben.
Das hier ist ein gutes Beispiel ist, wo elipsoide Boundigboxes
die schlechtere Wahl sind.
Posted By: Otter

Re: geradeaus ins verderben - 03/09/11 08:59

c_content war was ich gesucht hab. ^^

Gute Ideen, aber was haltet ihr von einer kombination:
Am beginn des levels läst jeder koopa einen "test-trace" von seiner position nach links und rechts prüfen wie weit der abstand zum abgrund ist.
Das wird dann in skills gespeichert und er muss nicht ständigen neu geprüft werden.
Sobald ein block in seiner nähe zerstört wird, startet er wieder seine "test-strahlen" um den neuen weg zu berechnen.

Ich glaube das sollte funktionieren
OTTER
Posted By: Damocles_

Re: geradeaus ins verderben - 03/09/11 11:05

Hört sich gut an.
Nur mußt DU das Ereignis "Block zerstört" dann korrekt behandeln.

Wenn das geht, sollte das System gut funktionieren.
Posted By: Uhrwerk

Re: geradeaus ins verderben - 03/09/11 15:21

Ja, das ist eine prima Lösung. Du musst dann nur eine Liste von allen Koopas führen, und jeden Koopa über die Zerstörung eines Blocks benachrichtigen.

BTW.: Epic Artwork. Ich liebe den Gesichtsausdruck der Koopas. :-)
Posted By: Otter

Re: geradeaus ins verderben - 03/09/11 21:50

YUHU ERFOLGSERLEBNIS!^^
Alles funktioniert im moment wie es soll!
Zumindest bis ich einen block zerstöre und ihm damit für kurze zeit den pointer "deadly_box" übergebe. (damit gegner in der nähe der box geschädigt werden)

Also wenn "deadly_box" != NULL ist, wird dieser test-trace wieder aktiviert.
Unglöcklichweise werd ich den blöden pointer nach dem zerstören des ersten blocks nicht mehr los und er ist die ganze zeit != NULL.
Auch wenn der ursprüngliche block schon längst entfernt wurde.
Damit komme ich zur simplen frage:
wie entferne ich einen pointer?

@Uhrwerk: das sind meine ersten gehversuche mit einem zeichenpad.^^
Ich glaube aber das ich langsam besser werde.
Posted By: Widi

Re: geradeaus ins verderben - 03/09/11 21:55

deadly_box = NULL; ??
Wenn du den Pointer wie oben manuell auf NULL setzt?
Posted By: Otter

Re: geradeaus ins verderben - 03/09/11 22:09

o___O'

Okay....

von ein dutzent varianten ist mir das nicht eingefallen...
peinlich blush
danke widi!

Das wars dann wohl wieder fürs erste.
Danke für eure hilfe, alles funktioniert prima!
Der Koopa darf leben .................... für den moment
mfg
OTTER
Posted By: Uhrwerk

Re: geradeaus ins verderben - 03/09/11 22:18

Originally Posted By: Otter
@Uhrwerk: das sind meine ersten gehversuche mit einem zeichenpad.^^
Ich glaube aber das ich langsam besser werde.

Ob das jetzt "gut" umgesetzt ist vom handwerklichen kann ich nicht beurteilen. Ich hab drei Linke Hände bei sowas. Aber es ist furchtbar putzig. Ich mag den Stil einfach. Und vor allem die Mimik. Obwohl es ja nur einzelne Bilder sind transportieren die Humor wie ein Comic.
Posted By: Widi

Re: geradeaus ins verderben - 03/09/11 23:12

Definitiv. Habe schon oft erwähnt dass ich die Illustrationen von Otter mag. Bringt etwas Farbe hier ins Forum. Wie lange hast du denn für so ein Bild wie im ersten Post hier?
Posted By: Otter

Re: geradeaus ins verderben - 03/10/11 11:09

Ach... da brauch ich 10min. dafür.
Ist kein großer aufwand, euch gefällts und ich werd besser.
Hab mir schon oft überlegt ob ich nicht manche Szenen im spiel durch bilderbuch zeichnungen wie in Yoshistory erzählen soll.
Aber da werd ich mir weitaus mehr mühe geben müssen als für so ne' kleine skizze. wink

mal schauen ...
OTTER
© 2024 lite-C Forums