Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lebensbalken über den Charset des Gegner anzeigen?



Finalstand
11.04.2011, 00:35
Hi da ich möchte, das man den Lebensbalken des Gegners sieht bei einen AKS wollte ich mal Fragen wie ich das mache? Per Picture? Oder wie?

Vyzzuvazzadth
11.04.2011, 03:29
Da gibts 2 Möglichkeiten. Entweder, du zeigst ein Picture an, welches du per parallelen Prozess ständig der Position des Kämpfers anpasst (move Picture) und neu anzeigst, wenn die Lebenspunkte ändern, oder du verwendest ein Event.
Im Event selbst kannst du dann den Lebensbalken als Charset-Bild über mehrere Event-Seiten mit Bedingung (Var Lebenspunkte % > X) anzeigen lassen. Eine Alternative dazu wäre, bloss eine Event-Seite zu verwenden, auf der eine Liste mit Bedingungen drauf ist, die je nach Lebenspunkte-% per "Move Event" die richtige Grafik des Events setzt.
Für die Event-Variante musst du zusätzlich in einem parallelen Prozess Immer überprüfen, ob sich der Kämpfer wieder bewegt hat. Falls ja, bewege das Lebensbalken-Event in die jeweilige Richtung.

Der Vorteil von der Picture-Variante ist, dass sie sehr einfach umzusetzen ist. Der Nachteil: du verbrauchst Picture-IDs
Der Vorteil von Events ist, dass du beliebig viele davon machen kannst, wobei aber die Umsetzung recht kompliziert ist im Vergleich zu der Picture-Variante.

Ich hoffe ich habe mich verständlich ausgedrückt. Manchmal tendiere ich zu komplizierten Antworten >_<

Finalstand
11.04.2011, 03:31
Alles klar das hat mir sehr geholfen :D

Cherry
11.04.2011, 07:55
Der Nachteil: du verbrauchst Picture-IDs

@Finalstand: Das ist heutzutage aber nicht mehr relevant, da du dir mit geeigneten Tools einfach mal 126 (RM2k3) oder 9999 (RM2k) Picture IDs holen kannst. Du bist nicht mehr an die herkömmlichen 50/20 gebunden.

Finalstand
11.04.2011, 07:58
@Finalstand: Das ist heutzutage aber nicht mehr relevant, da du dir mit geeigneten Tools einfach mal 126 (RM2k3) oder 9999 (RM2k) Picture IDs holen kannst. Du bist nicht mehr an die herkömmlichen 50/20 gebunden.

Danke das wusste ich nicht das man die erweitern kann, weil ich vorhabe mit Pictures zu arbeiten und hab grad auch mal etwas gescriptet und man braucht nur eine ID für einen Gegner weil man das andere Bild einfach "überschreibt". Und so klappt es.

Corti
11.04.2011, 08:22
Pictures in nem AKS oder allgemein bei Anzeigen mit hoher Aktualisierungsrate nicht einzelnd per Show Picture sondern alle auf nen "Streifen" knallen und per Move Picture den Sichtbereich verändern.

So, hier hab ichs schonmal erklärt. Was mit Zahlen klappt das klappt genau so mit Animationsframes und HP-Balken. (http://www.multimediaxis.de/threads/130434-Schadensberechnung-AKS?p=2738845&viewfull=1#post2738845)

Finalstand
12.04.2011, 08:03
Pictures in nem AKS oder allgemein bei Anzeigen mit hoher Aktualisierungsrate nicht einzelnd per Show Picture sondern alle auf nen "Streifen" knallen und per Move Picture den Sichtbereich verändern.

So, hier hab ichs schonmal erklärt. Was mit Zahlen klappt das klappt genau so mit Animationsframes und HP-Balken. (http://www.multimediaxis.de/threads/130434-Schadensberechnung-AKS?p=2738845&viewfull=1#post2738845)

Danke, aber die Methode ist etwas komplexer für mich:)

Supermike
12.04.2011, 08:06
Danke, aber die Methode ist etwas komplexer für mich:)
Nicht wirklich...
Ist aber afaik Performanceschonender! Und spart, unter umständen, Pictures! :A

Finalstand
12.04.2011, 08:08
Ja das kann sein allerdings hab ich keine Ahnung?

Man macht ein Picture aber wie stellt man dann ein, das der Balken niedriger wird, ich blicks nicht xD

Supermike
12.04.2011, 08:13
Die Position niedriger setzen?
Erzähl jetzt aber nicht, dass du nicht weisst, wie man Pictures an verschiedenen orten, setzt.

ToJoK
12.04.2011, 10:24
Das "Problem" ist glaube ich die doppelte Verschiebung der Bilder. Man muss das Bild sowohl bei Bewegungen des Charakters verschieben, als auch bei Änderungen des HP-Wertes. Da muss man seine Logik vielleicht ein bißchen mehr beanspruchen um die korrekte Pictureposition zu bestimmen.

Supermike
12.04.2011, 11:08
Man muss das Bild sowohl bei Bewegungen des Charakters verschieben, als auch bei Änderungen des HP-Wertes
Ne. Es gibt die Option, dass es immer an der selben stelle im screen angezeigt wird (was afaik standart ist). Da kann der Held noch so schnell so weit rumlaufen.

und bei jener beschreibung:



Meine Fähigkeiten sind:
(3 Daumen sehr gut/1 Daumen Grundkenntnisse)

Technik::A:A:A
Ideen::A:A
Sequenzen::A:A:A
Dialoge: :A:A
Mapping: :A
Pixeeln/Grafik::A

müsste man ja davon ausgehen können, das er genug Ahnung hat und Cortis beispiel ist jetzt wirklich einfach dargestellt.
Aber das meist eh selbstbeurteilung nicht stimmen wissen wir ja...

Finalstand
12.04.2011, 11:09
Habs verstanden hatte zuvor nicht genau gelesen.

ToJoK
12.04.2011, 11:22
Ne. Es gibt die Option, dass es immer an der selben stelle im screen angezeigt wird (was afaik standart ist). Da kann der Held noch so schnell so weit rumlaufen.

Ok, hatte da im Kopf, dass der Balken immer über dem Gegner stehen soll, und der kann sich ja "frei" auf der Map bewegen. Das ist dann nämlich schon etwas komplizierter, als einfache Bilder, da die Pixelberechnung von zwei und nicht nur einem Parameter abhängt. ;)

Corti
12.04.2011, 12:34
Das "Problem" ist glaube ich die doppelte Verschiebung der Bilder. Man muss das Bild sowohl bei Bewegungen des Charakters verschieben, als auch bei Änderungen des HP-Wertes. Da muss man seine Logik vielleicht ein bißchen mehr beanspruchen um die korrekte Pictureposition zu bestimmen.

Die Bewegung von Spieler und Monster ist an relativ feste Zeitpunkte und Kästchenschritte beschränkt. Eine Aktualisierung per PP geht um ein Vielfaches schneller, zumindest reichts dicke um eine ordentliche Anzeige hinzubekommen. Der Ort der Anzeige in "on Screen"-Koordindaten in Pixel ergibt sich aus

- X und Y des Monsters
- X und Y des Helden bzw. des Viewports, hier muss man bedenken, dass der Held nicht immer mittig im Bild ist was sich aber über "kleiner 16/10 Kästchen am Maprand" abfragen lässt. Aus der "Viewport"-Koordinaten X/Y und der Monster-Map-X/Y ergibt sich der relative Pixelwert X/Y im "Viewport".
- befindet sich die grafische Anzeige ausserhalb des Bild sollte das Picture ausgeblendet werden um im Falle der von mir beschriebenen "Streifen"-Methode keine "inaktiven" Grafikvarianten ins Bild zu bekommen.

Sollte für einen selbsternannten Technikexperten ja kein Problem darstellen.

ToJoK
12.04.2011, 13:07
Entweder du verstehst mein Problem nicht, oder ich deine Lösung nicht. :D

(kurz vorab, ich hab den Maker gerade nicht hier, deswegen kann ich die Sachen nicht direkt vor Ort testen)
Angenommen der Char befindet sich auf Feld x=12 und y=7, die Anzeige soll über dem Char angezeigt werden, also auf x=11,5*16px=184px und y=3,5*16px=56px. Da der HP-Wert 10 beträgt nehmen wir die y-Position +2400px. Wenn sich der nun einen Schritt nach rechts bewegt wird x+=16px, bekommt er nun einen auf die Mütze und der HP-Wert sinkt um 1 Stufe wird y-=240px.

Ergo: ich kann die Position des Bildes nicht stupide über die X- und Y-Positionen des Chars anzeigen lassen, sondern muss die Position viel mehr einmal am Anfang bestimmen und jetzt bei jedem Schritt und bei jedem zugefügten Schaden wieder anpassen. Wenn du es schaffst die Bildposition nur über 2 Variablen stupide via PP anzeigen zu lassen, dann hast du meinen Respekt, denn die Logik für diese simple Methode erschließt sich mir hierbei nicht.
=> Es ist programmiertechnisch aufwendiger, als wenn ich jeden HP-Wert als einzelnes Bild anzeigen lassen würde.

Ich hoffe mein Denkansatz bei dieser "Problematik" ist klar geworden. ;)

Corti
12.04.2011, 14:30
Ich bezog mich auf das Errechnen der Bildkoordinaten, quasi den Punkt im Bild auf dem die HP Leiste angezeigt wird. Dass auf diese X und Y Werte nochmal eine Verschiebung berechnet werden muss um den gewünschten Frame anzuzeigen sollte klar sein. Je nach Framegröße und Abstand zu den vorherigen und folgenden Frames ergibt sich da eine Formel in Form von YFix - ( N * YF+YP) bei N = FrameNummer, Y = höhe Einzelframe in Streifen, YP = Platz zwischen Frames sowie YFix als Fixwert basierend auf der Gesamtgröße des Streifens.

Kling komplizierter als es ist, ein paar Koordinatenoffsets verrechnen. Wenn man das Stück für Stück zusammenkonstruiert ist das kein Hexenwerk sondern sollte jedem, der ganze Zahlen bis +-10000 verrechnen kann möglich sein. Der Unterschied zwischen einem Streifen und einzelnen Bildern beschränkt sich allein auf den Verschiebungsoffset N in der groben Formel.


Es ist programmiertechnisch aufwendiger, als wenn ich jeden HP-Wert als einzelnes Bild anzeigen lassen würde.
Find ich nicht. Je nachdem ob du per Picture Pointer Patch den Namen konstruierst oder Forkreihen machst ist das auch ein ein wenig Rumgecode. Die Streifenmethode benutze ich andauernd in meinem Projekt, das sind ein paar simple Variablenoperationen die zu einer sehr eleganten Lösung führen.

Was nun "aufwändiger" ist, wenn man die Wahl hat zwischen 20 Condition Branches oder 5 kleinen Befehlen (grobschätzung) sei mal dahingestellt.