Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
13.04.2009, 01:59
LRK



Schönen Tach.
Ich probiere schon stundenlang aus, ob man irgendwie Zahlenwerte abspeichern kann und habe viel mit math_counter und logic_case herumgetüfftelt, ohne Erfolg. Das Ganze sollte etwa so funktionieren:

Knopf 7 wird gedrückt

Slot 1 bekommt den Wert "7" zugeteilt

Knopf 4 wird gedrückt

Slot 2 bekommt den Wert "4" zugeteilt

usw

Die Zahlen müssten dann auch noch nacheinander abgearbeitet werden und dabei immer einen Slot nach vorne wandern aber erstmal schauen, ob man da nicht eine Lösung für Problem 1 finden kann...

Ciao, dann erstmal.

--

zum Seitenanfang zum Seitenende Profil || Suche
001
13.04.2009, 21:17
Night Wolf



Zuerst wollte ich etlich viel schreiben, bis mir auffiel, dass es auch viel simpler geht. Je nachdem natürlich, wie viele Zahlen gespeichert werden sollen.

Meine Idee wäre es, zum Anfang die Konstruktion so aufzubauen, wie in Richmans Zahlenschloss, jedoch dann für jede Zahl ein extra math_counter zu erstellen.

Also nehmen wir einmal an, du hast einen Code von 4 Stellen, dann brauchst du neben den Buttons noch 5 math_counter und 1 logic_case. Das Case ist dafür zuständig, die math_counter nacheinander zu deaktivieren, so dass sie keine Werte mehr aufnehmen können. Die Buttons senden einen Output zu dem 5. math_counter, welcher dann wiederrum einen Output zum Case sendet. Die anderen 4 Counter empfangen jeweils den Wert des gedrückten Buttons.

--

Muh sag ich da!
----------------------
All das ist thewall: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

zum Seitenanfang zum Seitenende Profil || Suche
002
13.04.2009, 21:31
LRK



So in etwa habe ich es zuerst gemacht. Und als ich dann feststellen musste, dass auch ein deaktivierter math_counter einen Zahlenwert aufnimmt, habe ich mich ganz schön geärgert...

Ich zieh' das jetzt durch und mache alles per Hand. Das sind dann etwa 256 Signal-Kreuzungen plus die Eingabemodule... Ein Glück weiß ich, wie ich mir Teile der Arbeit mit einem Texteditor erleichtern kann. Zudem pack' ich in jeden Variablennamen ein "B" rein. So dass ich das Konstrukt hinterher leicht kopieren kann. Schaltung A, Schaltung B... usw...

Wenn's klappt habe ich hinterher eine Aufzugschaltung mit 16-Stellen-Zielspeicher. :D

Nur eine Routine zum Optimieren der Route (auf dem Weg von Etage 3 zu 9 noch 5 mitnehmen) werd' ich wohl jetzt erstmal nicht hinkriegen, aber das hat auch keine so hohe Priorität.

--

zum Seitenanfang zum Seitenende Profil || Suche
003
13.04.2009, 21:50
Night Wolf



Hmm, das ist natürlich ärgerlich.

Die Frage ist, ob er nur immer noch Inputs aufnimmt oder auch Outputs senden kann. Wenn er keine Outputs sendet, dann könntest du einfach noch einen math_counter zwischenschalten.

--

Muh sag ich da!
----------------------
All das ist thewall: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

zum Seitenanfang zum Seitenende Profil || Suche
004
13.04.2009, 23:35
LRK



... Ich kapier' das mit dem Getvalue und Ongetvalue nicht, die werden aber wohl gebraucht... Nuja, jetzt werde ich erst noch an meinem Konstrukt weiterschrauben und mich später nochmal mit den counters beschäftigen...

EDIT:
Ich will grad einfach nur mal eine funktionierende Schaltung haben...

--


Dieser Beitrag wurde am 13.04.2009 um 23:37 von LRK bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
14.04.2009, 09:05
Richman
Moderator


Seh' ich das richtig, du willst einen Aufzug mit 16 Stockwerken bauen?
Ggf. wäre es sich noch zu überlegen, ob sich das irgendwie über die Fahrzeiten einfacher aufbauen lässt...

--

Richman's Hazardous Course - Status: 100% !!!
www.richmans-maps.ch.vu - wieder online!

zum Seitenanfang zum Seitenende Profil || Suche
006
14.04.2009, 16:32
LRK



Ich habe mir zum Ziel gesetzt einmal einen sehr authentischen Aufzug zu bauen, der dem potentiellen Benutzer allein durch sein hoch realistisches Verhalten positiv auffällt und künftigen Maps einen gehörigen Schuss Professionalität verleiht. Dazu zählt im Wesentlichen der Zielspeicher, von dem ich glaube, dass er in der Mapper-Szene noch gar nicht, oder nur extremst selten auftaucht (schon gar nicht in dieser Komplexität).

Der Speicher fasst dann in der Tat die Zahlen von bis zu 16 Stockwerken aber es müssen ja nicht zwangsläufig so viele sein, ich wollte halt nur den ersten logic_case in der Schaltung komplett ausnutzen.

Ein Glück, habe ich erst vor Kurzem eine Digitaluhr (aus func_brushes) fertiggestellt, welche mir jetzt beim Auslesen der Werte in den math_counters hilft.

Tests mit den ersten fertigen Schaltungen sind vielversprechend aber wenn sich jemand doch noch mal die Mühe machen würde, und mir die Verwendung der GetValue- und OngetValue-Oputputs zu erklären (idiotensicher bitte %D), wäre mir sicher geholfen. Vielleicht ergeben sich dadurch ja neue, einfachere Möglichkeiten. Wir kriege ich etwa einen Wert aus einem math_counter in einen anderen, ohne unbedingt für jeden counter einen logic_case zu benutzen? Geht das damit vielleicht?

Naja, ciao dann erstmal, DEIN LUKAAAS!

--

zum Seitenanfang zum Seitenende Profil || Suche
007
14.04.2009, 17:12
Night Wolf



Eine genau Beschreibung, wofür man diese Beiden benutzen kann, würde mich auch mal interessieren. Ich kann mir nur denken, dass sie dazu dienen, den Wert des Counters ohne eingehende Rechenoperation, bzw. ohne sich veränderndes Ergebnis weiterzuleiten. Eventuell würde es auch für deinen Zweck Sinn ergeben. Ich stelle mir das in einem Beispiel so vor:

Ein math_counter bekommt einen Wert, und soll diesen weiterleiten, wenn eine beliebige Bedingung der Wahrheit entspricht. Also nehmen wir z. B. nun einen 2x func_button, logic_branch, logic_case, math_counter.

Der 1. Button sendet einen Input zu dem logic_branch, dass dieser sich auf "Wahr" stellt. Der 2. Button sendet einen Inputwert zum math_counter per SetValueNoFire und zudem mit einer zeitlichen Verzögerung noch einen "Test" Input zum logic_branch. Dieser sendet dann einen GetValue an den math_counter, welcher dann wiederrum mit OnGetValue seinen Wert dem logic_case übergibt.

Ob die Befehle wirklich so funktionieren ist ohne Gewähr. Habe sie noch nie getestet oder gebraucht. :o

--

Muh sag ich da!
----------------------
All das ist thewall: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |


Dieser Beitrag wurde am 14.04.2009 um 17:12 von Night Wolf bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
008
15.04.2009, 13:10
Richman
Moderator


Ich hab mir nur gerade gedanken gemacht, ob es zwingen nötig ist, für jedes Stockwerk einen eigenen Case zu machen, oder ob es nicht sogar sinnvoller wäre, die ganze Schaltung relativ aufzubauen.

Die Idee wäre z.B. wenn sich der Lift im Stockwerk 9 befindet, und ein Spieler die 5 drückt, dann wird 5-9 gerechnet, ergibt -4 also fährt der Lift z.B. 4 Sekunden lang mit der Geschwindigkeit von 1-Etage/Sekunge nach unten.

Das war nur meine grundlegende, alternative Überlegung, weiss aber nicht ob sich das so realisieren lässt.

--

Richman's Hazardous Course - Status: 100% !!!
www.richmans-maps.ch.vu - wieder online!

zum Seitenanfang zum Seitenende Profil || Suche
009
15.04.2009, 16:19
LRK



Edit:
Die Speicherung der Ziele war der Knackpunkt, die Berechnung zum Ansteuern der Stockwerke mache ich ja auch in etwa so:
Ein logic_compare bekommt als Stammzahl die Etage, wo der Aufzug zu Beginn spawnt. Wenn nun der Schaltermechanismus ausgelöst wird, wird dem logic_compare eine neue Vergleichszahl gegeben, die mit der Stammzahl verglichen wird und das entsprechende Ergebnis lautet dann:

bei gleich - stehen bleiben
bei größer - vorwärtsfahren
bei kleiner - rückwärtsfahren

Jeder path_track auf dem Weg wird dann als Output dem logic_compare seine Etagennummer zum vergleichen übermitteln, bis das gewünschte Stockwerk erreicht ist und beide Zahlen gleich sind. Nur muss ich irgendwo einen Dreher haben, weil es grade so nicht klappen will. :((

Die Schaltung ist übrigens mittlerweile fertig und die math_counter haben nun tatsächlich ihre Werte angenommen. Nun muss ich einen Weg finden, wie ich die ganzen Nummern immer weiter nach vorne übermittel, so dass der Aufzug immer die nächste Zahl als Ziel erhält... Evt. wäre da was mit den math_counter-Signalen "GetValue" und "OnGetValue" machbar, aber in dem entsprechenden Thread, den ich eröffnet habe, hat sich noch niemand gemeldet...
:((

--


Dieser Beitrag wurde am 15.04.2009 um 16:30 von LRK bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
20.04.2009, 23:25
LRK



Najut, ich tüfftel dann noch was weiter und deklariere das Problem mit dem Zielspeicher soweit als gelöst.

Danke für's Miträtseln. :)

--

zum Seitenanfang zum Seitenende Profil || Suche