Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 26

Thema: Joe's Fragenecke!

  1. #1

    Joe's Fragenecke!

    Hallo

    Bin schon länger hier angemeldet aber habe eigentlich immer nur viel mit gelesen und hin und wieder etwas geschrieben. Nun habe
    ich mir aber einmal gedacht, dass ich selbst ein kleines Spiel erstellen möchte und bin jetzt zu diesem "Problem" gekommen:

    Zitat Zitat
    Ich will einen Vogel fliegen lassen, der aus Pictures und zwei verschiedenen Animationen besteht. Also einmal mit den Flügeln unten und einmal mit den Flügeln oben. Der Vogel
    soll - animiert natürlich - von links ins Bild nach rechts aus dem Bild fliegen. Wie kriege ich es hin, dass ein animierter Vogel fliegt und das ganze auch nicht zu viel Leistung verbraucht.
    Momentan habe ich es so gelöst, dass ich die X- und die Y-Achse eines Events abfrage, dieses Event bewege ich von links nach rechts
    und die Animation lasse ich extra in einem Loop laufen, in dem die Bilder immer auf der X- und Y-Achse des genannten Events angezeigt
    werden. Eine andere Lösung wäre noch alles mit ungefähr 100 Show Pictures (na gut, 100 ist übertrieben, aber es wären schon viele
    nötig) zu machen. Aber das wäre doch Selbstmord für die Leistung.

    Liebe Grüße!

  2. #2
    Probier mal das:

    Setze 2 Variablen für die Koordinaten (x auf 0 und y auf 120 wäre z.B. mitte links) das ist dann der Startpunkt
    Lasse das Bild anzeigen, verwende die Variablen als Koordinaten
    Dann setzt du ein Label und ein Wait auf 0.
    x-Variable erhöhen (wieviel musst du selbst probieren)
    Bild bewegen
    zweites Bild anzeigen (gleiche Bildnummer verwenden)
    x-Variable erhöhen
    Bild bewegen
    erstes Bild anzeigen
    Zum Label springen

  3. #3
    Hätte das nicht wieder zur Folge, dass die Performance schlecht ist, da das Bild (durch Show Picture) immer wieder neu geladen wird?

    Ich habe übrigens schon wieder ein neues Problem. Ich habe das Bild von Wolken in der Größe 640*240. Diese Wolken will ich (vor einem Hintergrund Panorama) scrollen lassen. Bisher funktioniert (fast) alles Wunderbar. Ich lasse das Bild einmal als Picture 1 anzeigen und es von rechts nach links scrollen. Überall, wo dadurch jetzt kein Wolken-Bild angezeigt wird, scrollt Picture 2. Es sind keine Lücken usw. zwischen den Bildern. Allerdings passiert es, dass nach dem vierten Durchlauf (das habe ich nur rein zufällig bemerkt) plötzlich eine Lücke von einem Pixel zwischen Picture 1 und Picture 2 entsteht. Und auch keine ständige Lücke, sondern das Bild ruckelt zwischen keiner Lücke und einer Lücke von einem Pixel hin und her.

    Liegt es vielleicht daran, dass auch die Dauer "0" bei Move Picture ein wenig Zeit in Anspruch nimmt und so im Laufe der Zeit diese Lücke entsteht? Wenn ja: Wie kann ich da beheben?

    Ich bedanke mich jetzt schon einmal für die Hilfe!

  4. #4
    Lad dir mal Elektra Kingdom und öffne es im Maker, auf der ersten Map "Jesario" findest du unter Event 0084 und 0085 den kompletten Skript. Zusätzlich wird bei jedem Betreten der Worldmap ein Switch deaktiviert, damit der Skript weiterhin angezeigt werden kann. Das Spiel benutzt zudem Cherrys UnlockPics-Patch damit der Effekt bei geöffneten Messageboxen nicht einfriert.

    Die Picturegeröße beträgt bei mir btw 640x480.

  5. #5
    Zum Problem mit dem Vogel:
    Eine bessere Lösung wäre, eine Battleanimation vom Vogel auf ein Event zu projezieren, und dieses dann durch das Bild bewegen lassen. Ist trotzdem über allem und zerrt nicht an der Performance.

  6. #6
    @Davy Jones: Das klappt super! Auf die Methode mit einem Switch wäre ich wohl nie gekommen, weil mir nicht eingefallen wäre, dass dadurch keine Zeit durch Move Picture (zurück auf die Ursprungsposition mit einer Dauer von "0") verschwendet wird. Die Werte dann so zu ändern, dass sie zu meinen Bildern passen war kein Problem. Danke vielmals!

    @G-Brothers: Das hatte ich mir auch schon überlegt. Doch leider gibt es das Problem, dass ich bei meinem Projekt die Anordnung so umgepatcht habe, dass Battle Animations UNTER Bildern sind, weil ich viele Battle Animations im Spiel selbst verwenden werde, die unter Bildern (z.B. Nebel) liegen.

    Meine bisherige Methode frisst, glaube ich, wegen der dauernden Festlegung der X- und Y-Achse des Events am meisten an Leistung. Wenn es möglich wäre, ein Show Picture auf ein Event anzeigen zu lassen, gäbe es keine Probleme.

    Vielleicht fällt jemandem noch etwas ein?

  7. #7
    Zitat Zitat
    Wenn es möglich wäre, ein Show Picture auf ein Event anzeigen zu lassen, gäbe es keine Probleme.
    Das geht natürlich. Dazu musst du einfach die Koordinaten des Events mit 'Change Variable' -SCENE X und SCENE Y auslesen.
    Damit bekommst du dann die PIXELgenauen Koordinaten, nicht die der Map.
    Auf diesen Koordinaten lässte dann einfach den Vogel einblenden (mit 0.0 Wait versteht sich).

  8. #8
    Ja, so habe ich es doch gemacht. Du brauchst nur meinen ersten Post lesen. Mir geht es darum, ein Picture WIRKLICH mit Show Picture (anstatt auf X und Y) auf ein Event anzuzeigen. Das Problem mit XY-Koordinaten ist, dass diese ständig ausgelesen werden und dadurch Leistung verloren geht. Mir wäre es auch egal, wenn auf dieser Map nicht schon so viel laufen würde.

    Es ist schade, dass es keine Funktion gibt, die es möglich macht, komplette Animationen zu bewegen ^^

    Noch eine kleine Frage: Gilt ein Label immer nur für das aktuelle Event? Also: Ich habe z.B. zwei Events und in jedem dieser zwei Events ist ein Label. Kann dieser Label gefahrlos zwei mal die gleiche Nummer haben? Also z.B. "Label 1".

  9. #9
    Machs doch so: bestimme die Startposition des Pics mithilfe des Events und die Fortbewegung machst du einfach über eine regelmäßige Veränderung der Variablenpositionen.

  10. #10
    Du meinst also praktisch genau umgekehrt wie meine derzeitige Methode? Es ist ein sehr kleiner Vogel (also nur eine Silhouette eigentlich) der sehr oft mit den Flügeln schlägt ^^ Kommt da nicht eine sehr, sehr große Menge an Arbeit auf mich zu?

  11. #11
    Also mir kommt vor als wenn du dir zu viel sorgen um die Performance machst ^^" So schnell geht die auch nicht in den Keller.
    Ich würde vorschlagen, einfach mal eine Methode zu testen und dann schauen ob es annehmbar ist oder nicht. Wenn es geht, hat sichs erledigt und wenn nicht
    kann man ja weiter überlegen.

    Zitat Zitat
    Wenn es möglich wäre, ein Show Picture auf ein Event anzeigen zu lassen, gäbe es keine Probleme.
    Das gibt es meines wissens nicht, käme aber am ende fast aufs gleiche wie bei meiner Methode

  12. #12
    Naja, jeder hat nicht den gleichen PC ^^ Also nur weil bei mir dann alles passt, muss das nicht für jeden anderen auch gelten. Wie gesagt: Es würde mir nichts ausmachen, wenn bei mir nicht schon so viel auf der Map laufen würde.

    Bis jetzt läuft, abgesehen vom Vogel (den ich momentan deaktiviert habe) alles so, dass es möglichst wenig Performance fordert. Glaube ich ^^"

  13. #13
    ich würde zwei Bild-IDs verwenden, und dann alles nur mit Move Picture bewegen. Jeweils das Bild was sichtbar sein soll auf 0% Transparenz, das andere auf 100%, und dann wechseln, etc.

  14. #14
    Die Methode habe ich mir auch schon überlegt. Performancetechnisch die beste, fordert dafür aber den größten Arbeitsaufwand. Es ist außerdem inzwischen so vorgesehen, dass es mindestens 3 und maximal 5 Vögel sein sollen, die abwechselnd fliegen sollen. Da wird der Aufwand dann noch verfünffacht.

  15. #15
    Mit PicPointerPatch nicht.

  16. #16
    Mach die einzelnen Aimationsframes auf ein großes Picture mit viel leerem Platz dazwischen, so dass man immer nur ein Frame sieht.

    Vorteile:
    • Eine Picture-ID pro Vogel
    • kein ShowPicture, nur MovePicture


    Nachteil:
    • Das Anzeigescript erfordert ein klein wenig Verstand ^^


    Nicht davon abschrecken lassen ein 2000 Pixel großes Bild für einen 10*10 Pixel großen Vogel zu verwenden.


  17. #17
    @Corti: Ich habe es jetzt erst mal mit deiner Methode gemacht. Bei nur zwei Animationsstufen reicht es in meinem Fall auch, wenn das Bild 240 Pixel hoch ist, da es nicht genau am Rand beginnt, sondern noch von einem anderen Bild verdeckt wird.

    @Cherry: Deinen Patch werde ich mir auch einmal ansehen. Hört sich ganz interessant an. Mir ist nur nicht ganz klar, wie mir das in meinem Fall jetzt genau von Nutzen sein soll, da ich ja immer noch jede Position einzeln eingeben muss, oder?

    Die Methode, mehrere Animationsstufen auf ein Bild zu packen und alles mit Move Picture umzusetzen kann ich aber bisher jedem nahelegen und empfehlen ^^ Das funktioniert sehr gut.

  18. #18
    Zitat Zitat von JoeM5 Beitrag anzeigen
    @Cherry: Deinen Patch werde ich mir auch einmal ansehen. Hört sich ganz interessant an. Mir ist nur nicht ganz klar, wie mir das in meinem Fall jetzt genau von Nutzen sein soll, da ich ja immer noch jede Position einzeln eingeben muss, oder?
    Was meinst du mit "jede Position einzeln eingeben"? Müsste man doch auch automatisieren können...
    Meinen Patch hab ich erwähnt weil du sagtest du würdest mehrere Vögel gleichzeitig anzeigen wollen. So braucht du den Code jetzt nicht 5x für 5 Vögel schreiben, sondern nur 1x.

  19. #19
    wieso machst du nicht einfach mehrere charsets (vom einen Flügel, vom anderen und vom Vogel) und lässt die untereinander herlaufen? mit "over hero" natürlich.
    Oder muss ein Bild drunter sein? Dann würde ich tatsächlich eine Animation aus Bildern erstellen. so sehr zerrt das auch nicht an der Leistung, du machst ja nicht jede millisekunde ein neues Bild...

  20. #20
    @Cherry: Es sind zwei verschiedene Bilder. Bei einem Bild, hat der Vogel die Flügel oben und beim anderen Bild hat er die Flügel unten. Diese beiden Bilder sollen von links nach rechts in abwechselnder Reihenfolge angezeigt werden, sodass der Eindruck entsteht, der Vogel fliegt von links nach rechts. Wenn ich deinen Patch benutze, müsste ich ja trotzdem jedes Bild einzeln bewegen und die richtige Position jeder einzelnen Bewegung eingeben. Mit Corti's Methode lässt sich wenigstens alles mit Move Picture umsetzen, da es nur ein Bild ist, das sich bewegt.

    @PrinZZ: Das geht nicht, da, wie weiter oben schon gesagt, auf der Map praktisch nur Bilder angezeigt werden. Würde der Vogel aus Charsets bestehen, wäre er hinter den ganzen Bildern.

Berechtigungen

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