Minispiele im Spiel?

  • Hallo zusammen,


    ich würde in meinem Spiel gern einige Minspiele einbauen.
    Zum Beispiel wie bei Wolfenhain, wo man die Tasten in bestimmter Reihenfolge drücken muss.
    Oder dass man ganz schnell die Bestätigen Taste drücken muss um rechtzeitig etwas zu erreichen.

    Kann ich sowas ohne PlugIns in mein Spiel einbauen? Und wenn ja, wie?

  • Man kann über die If-Verzweigung abfragen, ob gerade eine Taste gedrückt wird. Daraus könnte man eine Art Quiktime-Event basteln.

    Ich würde so was in der Art als Grundgerüst vorschlagen:


    Allerdings bräuchte man noch eine Art Animation oder ein Bild der Taste, die gedrückt werden soll, damit der Spieler auch weiß was zu tun ist.

    Rasaks Pixelfarm: Diverse Grafiken für den RPG Maker MV und MZ. Unsere Spezialität: Monster!

    Rasaks Pixelfarm (Forum) | Rasaks Pixelfarm

    -----------------------------------------------------------------------------------------------------------------------------------------------------

    Projekte: Frostfate(Platz 2 Winter Jam), Shadow of Light (Pausiert weil wegen schlecht), Hunter of Falkenberg (Sleipnir Dreamware-Projekt)

    -----------------------------------------------------------------------------------------------------------------------------------------------------


  • Ja, die bestimmte Reihenfolge ist kein Problem mit Variablen und If/Else-Befehlen (Conditional Branch). Deine Variable beginnt bei 1 und wenn die richtige Taste gedrückt wurde, erhöht sich sich jeweils um 1 auf 2, 3 usw.


    Dann einfach bei der zweiten Taste im Eventmenü via If/Else abfragen, ob Variable den Wert zwei hat, sobald der Spieler das Event anklickt. Falls ja, also die richtige Reihenfolge eingehalten wurde, dann geht sie wieder einen hoch usw.

    Und für Else, also wenn die Variable den falschen Wert hast, gibst du die entsprechende Fehlermeldung aus und setzt die Variable wieder auf 0, also auf den Anfang zurück.

  • Ja man kann so ziemlich jedes "simples" Minispiel im Maker mit Hilfe von Variablen, Swtiches und IF Abfragen realisieren.

    Das wichtigste ist dabei du MUSST wissen was du machen möchtest, am besten es konzeptionell festhalten bevor du einfach drauf los "makerst".
    Sonst sind Sackgassen garantiert!

    Wenn du eine Idee hast welches Minigame du umsetzen möchtest und nicht weißt wie du es im Maker realsieren kannst, dann stell am besten noch einmal die Frage mit deinen Wünschen.
    Ich bin mir sicher, dass dir schnell geholfen werden wird :D

  • Lässt sich im Prinzip auch ganz einfach mit ner Variable machen. Bei Bildern hast du ja die Möglichkeit, deren X und Y Position per Variable festzulegen, heißt du musst einfach nur deine Variable für die X Position in z.B. einem Loop hoch bzw. runterzählen lassen und den Pfeil dann mit einem entsprechenden move picture Befehl bewegen lassen, und mit einer IF Abfrage prüfst du dann, ob Enter gedrückt wird. Wenn Enter dann gedrückt wird, verlässt du den Loop mit nem break und kannst dann abfragen, welchen Wert deine X Variable hat (Also quasi an welcher Position der Pfeil gestoppt wurde), und dementsprechend etwas machen lassen, wie bspw. eine "Erfolg!" oder "Misserfolg" Nachricht ausgeben lassen.

  • So lieber Platsch,
    ich hab mir alles angeschaut und versuche es so gut ich kann es zu erklären.

    Was du Minimum benötigst:
    1 Varbiable
    1 Switch
    3 Events die Parallel laufen

    Ich halte es kurz und basic. -> Ich erkläre es wie es in meinem Fall ist, du kannst und musst die Werte für dich halt passend umstellen ich werde diese Werte Fett und Kursiv markieren.

    Schritt 1: Die Variable [X] einstellen, dass diese von 0 auf 126 hochzählt. Ist der max. Wert erreicht soll jetzt die Variable rückwärts von 126 auf 0 runterzählen. Ist 0 erreicht geht es wieder von vorne los.
    Das ganze wird mit dem Loop Befehl gelöst. In meinem Fall werden alle 1 Frames 3 Punkte hinzugefügt, bzw. subtrahiert. (Warum 3 Punkte? Als ich es mit nur einem Punkt gemacht habe, war der Pfeil zu langsam)



    Schritt 2:
    Die passende Grafik mit Pfeil erstellst du dann selbst in deiner gewünschten Größe -> dem zu Folge richten sich auch die Werte der Variable, klingt beim ersten durchlesen vielleicht kompliziert, wenn du aber damit arbeitest wirst du bestimmt ein "AHAA" Moment haben und die einfache Logik dahinter verstehen.

    Nun erstellst du ein zweites Event (Parallel)
    Die lässt nun den Pfeil Analog zu deiner Variable nach rechts und dann nach links laufen. Bei mir dauert es 42 Frames (126/3=42) bis meine Variable von 0 auf 126 gezählt hat. Also muss mein Pfeil in 42 Frames vom Startpunkt an den Endpunkt ankommen! Und umgekehrt -> Also wieder von Ende zum Start.



    Zusammengefasst zum Verständnis: Während deine Variable hochzählt fährt in der selben Geschwindigkeit dein Pfeil die Skala hoch! Und wieder runter. DAS IST ABSOLUT WICHTIG, sonst funktioniert es nicht.



    Schritt 3:
    Die Auswertung:
    Bei mir ist es ein drittes Event das Parallel läuft, sobald Enter gedrückt wird, aktiviere ich einen Switch, der das Zählen und die Grafik stoppt. Gleichzeitig wird die Auswertung angezeigt. Also eine Nachricht an welchen
    Punkt meine Variable steht: Mit \V[NUMMER DER VARIBALE] kannst du den Wert Dieser in einem Textfenster anzeigen lassen. Jetzt musst du nur noch die Voraussetzung zum Sieg mit IF Abfragen machen.(IF Var X ist höher als 95, usw.) In meinem Fall muss man höher als 95 kommen dann hat man getroffen. Ist man höher als 105 hat man daneben geschlagen.




    Ich hoffe es hilft dir Weiter. Viel Spaß beim umsetzen :)
    Ja ich bin mir auch sicher, dass es effizientere Lösungen gibt, aber es funktioniert.

  • Man kann das ganze auch in ein einziges Event packen.

    Als erstes werden die Bilder sowie die beiden Variablen für die Pfeilposition initialisiert:



    Dann kommt die Schleife:


    Zum Schluss kommt dann noch die Auswertung:


    Der Selbstschalter ist dabei nur wichtig, wenn das Event als Autorun oder Parallel läuft und das Spiel nur einmal durchlaufen soll.

  • Ich glaube ich bin einfach zu dumm dafür o_O

    Ich sitze jetzt seit 3 Stunden an diesem blöden Minispiel und es klappt einfach nicht.

    Ich hab beide Versionen ausprobiert, aber irgendwie bewegt sich mein Pfeil nur in eine Richtung, fährt aus dem Bildschirm und ist für immer verschwunden.
    Und egal wann ich "OK" drücke steht da ich hab verloren.

    Ich kann auch überhaupt nicht einschätzen welche Zahlen ich eingeben muss. Weil ich noch nicht verstanden habe wie genau das funktioniert.


  • Ich fürchte ich versteh das nicht 100%ig.

    Was ich sehe ist dass du in der Schleife versuchst dne Pfeil von 0 an nach rechts laufen zu lassen bis er sich zwischen 25 und 20 einpendelt.

    Problem bei der Sache: du erhöhst X jedes mal um 3 und erwartest genau 25 heraus zu bekommen. Du wirst für X 24 und 27 erhalten, aber niemals 25. Gleichen gilt auch, wenn er wieder nach rechts pendeln soll, 20 ist nicht durch 3 Teilbar und wird niemals erreicht.

    Drückt man ok wird das ganze beendet und je nachdem wann der Spieler gedrückt hat ergibt sich x.


    Dann fragst du aber ab, ob X, welcher ja zwischen 20 und 25 pendeln soll bei dir, zwischen 390 und 399 liegt, ganz andere Zahlen die, wenn dein System denn funktionieren würde, niemals erreicht werden.


    Die genauen Zahlen kann ich dir jetzt nicht nennen, da ich nicht position und größe des Minigames kenne, aber da wo du nach 20 abfragst sollte der Anfang des Balkens sein. Zudem solltest du <= und nicht = abfragen. Die 25 ist das Ende deines Balkens und sollte mit >= abgefragt werden.

    Nach der Schleife fragst du ab, wo beim klicken der Pfeil ist. 390 und 399 sollten also Werte sein, die ziemlich genau in der Mitte liegen, das sind die Werte des "Erfolges" bzw. die grüne Stelle des Balkens.




    Edit: Hier mal grafisch dagestellt


    Rasaks Pixelfarm: Diverse Grafiken für den RPG Maker MV und MZ. Unsere Spezialität: Monster!

    Rasaks Pixelfarm (Forum) | Rasaks Pixelfarm

    -----------------------------------------------------------------------------------------------------------------------------------------------------

    Projekte: Frostfate(Platz 2 Winter Jam), Shadow of Light (Pausiert weil wegen schlecht), Hunter of Falkenberg (Sleipnir Dreamware-Projekt)

    -----------------------------------------------------------------------------------------------------------------------------------------------------


    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Rasak ()

  • Ja, ich hab am Ende einfach nur noch irgendwelche Zahlen eingetragen um zu schauen ob ich irgendwann mal den "AHAAAA" Effekt hab und mir endlich ein Licht aufgeht xD
    Ich danke dir für deine Hilfe, ich glaube das bringt mich schon weiter

  • Okay, dank deiner Hilfe klappt das. Ich habe jetzt nur noch ein Problem.
    Wenn man verliert, dann bewegt sich der Pfeil nicht mehr und es steht nur noch "verloren" da, obwohl ich das Label eingebaut habe, dass es eigentlich an den Anfang zurück springen soll.

    Warum macht der das nicht?

  • Du musst bei Verloren den Befehl "Zum Label springen..." setzen.

    Und dein "Label..." wo der hinspringen soll muss natürlich nach oben vor die Schleife wo der Pfeil hin und her bewegt wird.


    Beispiel:

    Label: Minigame Start

    Schleife: Hier kommt deine Pfeil hin und her geschichte
    ...

    ...

    ...


    If: Verloren
    Zum Label springen: Minigame Start

  • Also auf den Bildern sehe ich kein Label das zum Anfang geht, nur eins welches die „verloren“-nachricht überspringt

    Rasaks Pixelfarm: Diverse Grafiken für den RPG Maker MV und MZ. Unsere Spezialität: Monster!

    Rasaks Pixelfarm (Forum) | Rasaks Pixelfarm

    -----------------------------------------------------------------------------------------------------------------------------------------------------

    Projekte: Frostfate(Platz 2 Winter Jam), Shadow of Light (Pausiert weil wegen schlecht), Hunter of Falkenberg (Sleipnir Dreamware-Projekt)

    -----------------------------------------------------------------------------------------------------------------------------------------------------