Ergebnis 1 bis 7 von 7

Thema: Probleme mit Variablen (Key Input & Addition)

  1. #1

    Probleme mit Variablen (Key Input & Addition)

    EDIT
    Da ich den Thread nicht löschen kann, editier ich mal eben schnell den Rest rein, anscheinend hat der ganze Skript ein tieferes Problem:

    Die Feder unten zeigt nacheinander auf die verschiedenen Kugeln, wobei jede eine andere Punktzahl gibt. Wie will ich das Abfragen? Mit KeyInput und der Entertaste.

    Das ist die Pictureanzeige, die Variable 1505 wechselt ihren Wert je nachdem auf welche Kugel die Feder zeigt und aktiviert dadurch den entsprechende KeyInput:

    So sehen die parallelen Prozesse mit dem KeyInputs aus (insgesamt 4 separate Events zusammengefasst auf einem Screenshot):


    Zum letzten Event:
    - Aufgerufen wird dieses Autostart-Event durch einen abgelaufenen Timer.
    - Der Switch 2447 "Time Virtual Moon En" deaktiviert alle anderen Events, damit die Berechnung nicht durch Enterdrücken gestört wird.
    - Die verschiedenen KeyInputs selber haben wie ihr sehen könnt jeweils eine eigene Variable, die am Ende miteinander addiert werden sollen.

    Nur funktioniert das ganze nicht, weiß jemand warum das so ist?

    Geändert von Davy Jones (01.03.2012 um 14:04 Uhr)

  2. #2
    Zitat Zitat von Sain
    Die Feder bewegt sich also automatisch und wenn man Enter drückt, soll von der jeweiligen Stelle der entsprechende Wert gespeichert und dazuaddiert werden? Was genau passiert denn, wenn du das momentan ausprobierst? Wird überhaupt keine Zahl berechnet?
    Ich glaube, dass fehlerhaft addiert wird, aber ich hab keine Ahnung warum.

    Zitat Zitat von Sain
    Handelt es sich bei dem parallelen Prozess zu den KeyInputs um mehrere Common Events oder normale Events?
    Ganz normale Events.

    Zitat Zitat von Sain
    Sind das die kompletten Events oder hast du die abgekürzt?
    Die Pictureanzeige hab ich gekürzt, weil es ja immer nur dasselbe ist:

    Show Picture "Feder auf blauer Kugel"
    Variable nimmt den Wert 2 an
    wait
    Show Picture "Feder auf roter Kugel"
    Variable nimmt den Wert 1 an
    wait
    [...]

    Ansonsten ist das der komplette Skript, den ich dir da oben gepostet habe.

    Zitat Zitat von Sain
    Wie wird denn die letzte Box aufgerufen, auch durch einen Switch oder durch ein Call Event? Die Tasteneingabe sollte natürlich nicht möglich sein, während die Berechnung der Summe noch läuft, da solltest du vorher och eine zusätzliche Abfrage einbauen.
    Die letzte Box wird durch ein Autostart-Event aufgerufen, wenn der Timer abgelaufen ist.

    Der Switch den du auf dem letzten Screenshot siehst, deaktiviert alle anderen Events. Dadurch wird die Berechnung nicht mehr gestört und für die Messagebox spielts auch keine Rolle mehr.
    Edit: Oben mal editiert, damit es verständlicher ist was da abläuft.

    Zitat Zitat von Sain
    Nach der Berechnung der Punkte ist es auch nie verkehrt, die Variablen für den KeyInput wieder auf Null zu setzen.
    Macht keinen Unterschied, da das Minispiel in dieser Form nur einmal vorkommt.

    Geändert von Davy Jones (01.03.2012 um 14:05 Uhr)

  3. #3
    Zitat Zitat von Sain
    wo du zuerst wartest, bis der Spieler die Enter-Taste drückt und erst danach abfragst, wo sich der Zeiger gerade befindet! Damit vermeidest du dann diese ungewollten Überlappungen.
    Wie könnte man so eine Abfrage gestalten? "If enter key is pressed" gibt es ja als Condition nicht, zumindest konnte ich die Option nirgends entdecken.

  4. #4
    Hab die die PPs mal in einem einzigen Event zusammengefasst, getestet und mittendrin im Debugmenü nachgeschaut. Ich kann Enter drücken wie ich will, es wird kein einziger Wert in den verschiedenen KeyInputs erfasst.


    Die anderen Seiten regeln die anderen KeyInputs (quasi identisch) und die letzte ist halt der Switch, der alles deaktivert.

    Die hier sind also erstmal das Hauptproblem, was ist an denen falsch? Warum wird die Entereingabe nicht erkannt?

    Geändert von Davy Jones (02.03.2012 um 11:30 Uhr)

  5. #5
    Du fragst aber schon ab, ob die Variable auch =5 ist, oder? Key Input macht nämlich nichts anderes, als der angegebenen Variable einen Wert zuzuweisen, sobald die entsprechende Taste gedrückt ist.

    <>Set VarV[0002:Minispielwert] = 0
    <>Label:1
    <>Set Var[0001:Tastenabfrage] = 0
    <>Key Input V[0001], Enter, Wait until Key is pressed
    ..<>If V[0001] = 5
    ....<>Set V[0002:Minispielwert] + V[1505:Minispielbedingung]
    ..:END CASE
    :END CASE
    <>Jump to Label: 1

    Deine Variable 1505 enthält dann den Wert, auf den aktuell gezeigt wird. Warum du in dem letzten Event da dann noch quadrierst verstehe ich nicht ganz, ich würde die Werte einfach von vorn herein "fest" ändern in dem ersten Event, welches auch die Pictures anzeigt.
    Oder habe ich dich falsch verstanden?

    Geändert von BDraw (02.03.2012 um 11:52 Uhr)

  6. #6
    Das war wohl der Pferdefuß =/
    Hab jetzt bei den KeyInputs jeweils eine Condition eingefügt, welche die Taste Enter [5] abfragt und dann eine bestimmte Variable um verschiedene Werte hoch-/runterzählt. Damit fällt auch die komplette Addition und dieses *2/*-1/*-2 im letzten Event weg. Fehler war wohl, dass ich dachte dass allein die Betätigung der Enter-Taste eine bestimmte Vari um 1 hochzählt bzw. die Enterschläge speichert.

    Ok, danke euch beiden =)

    Geändert von Davy Jones (02.03.2012 um 12:49 Uhr)

  7. #7
    So sieht jetzt die Finalversion aus, die verschiedenen Keyinputs benutzen jetzt dieselbe Variable. Macht dann insgesamt drei Stück und funktionieren tut auch alles wunderbar =)

    Vll. pack ich noch ne Pictureeinblendung rein welche Kugel man getroffen hat, aber das kommt alles mit dem Feinschliff.

Berechtigungen

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