gestern - zuletzt bearbeitet gestern
Ich stehe an! Die KI's auch.
Ich möchte gerne ein Schalter-Array im User-Interface nutzen.
Es sollte in meinem neuen Stahl-Flucht-Stiegen-Objekt die Segmente der umlaufenden Geländer bei den Geschoßpodesten und Zwischenpodesten schalten können:
https://www.youtube.com/watch?v=QtZzlXohZ-c
im 3D habe ich editierbare Hotspots in der Mitte der Segmente knapp über den Handläufen eingesetzt und die funktionieren klaglos.
Nun möchte ich ein UI herstellen, welche für jedes Geschoß eine UI-Seite zur Verfügeung stellt und dort sollen diese Schalter dann auftauchen.
Ich habe nun zur Probe versucht, mit zum Beispiel:
UI_INFIELD{2} Gschalter1[i], 10, 50, 200, 20, 7, "", 0, 0, 0, 0, 0, 1.0, "Aus", 0.0, "An"
so einen Schalter für eines der 6 arrays herzustellen, wie es mir die KI nach x Versuchen dann mal vorgeschlagen hat, aber ich komm da einfach nicht weiter. Wie geht das wirklich?
Präziser: meine Array-Variable Gschalter1[i] (es gibt 1-6) ist vom Typ her ein Boolean, den ich aber im 3D mit einem editierbaren Hotspot zwischen 0 und 1 schalten kann.
Er findet sich auf der geschoß-dynamisch hergestellten UI-Seite:
! ==================================================================
! DYNAMISCHE SEITEN (GELÄNDERSCHALTER PRO GESCHOSS)
! ==================================================================
page_start = 4
FOR p = 1 TO active_count
idx = active_story_indices[p]
st_name = t[4*(idx-1)+2] ! Name des Geschosses
! Neue Seite generieren
UI_PAGE page_start + p - 1, -1, "Geländer: " + st_name
UI_OUTFIELD "Geländerschalter für das Geschoss: " + st_name, 10, 10, 350, 15
! --- TEST: EIN EINZIGER SCHALTER MIT UI_INFIELD{2} ---
! Wir nutzen zwingend {2} (Vorgabe bei Arrays!)
! 17 Argumente: name, x, y, w, h, Methode(7), Bild(""), 6x Null, Wert_Aus, Text_Aus, Wert_An, Text_An
UI_INFIELD{2} "Gschalter1", 20, 20, 10, 10
! Buttons
UI_BUTTON UI_PREV, "<< Zurück", 10, 230, 100, 25
if p < active_count then
UI_BUTTON UI_NEXT, "Nächstes Geschoss >>", 220, 230, 210, 25
endif
NEXT p
Wenn ich es wie hier im Code als
UI_INFIELD{2} "Gschalter1", 20, 20, 10, 10
schreibe, bekomme ich die gesamte Liste des Arrays und nicht einen einzelnen Schalter, der in dieses Geschoß passt.
ich möchte aber gerne aus dem Array nur einen einzigen Array-Eintrag als Hakerl schalten können - jeweils zum Geschoß passend.
AC29EduAut:
https://www.dropbox.com/scl/fi/hro0972kftdf51i0iaefc/TreppeDuchAlleGescho-e_I.pln?rlkey=zsf5cmwofewg...
gestern
Probier mal was ganz simples:
FOR i = 1 TO 10
UI_INFIELD{2} Gschalter1[i], 20, (i - 1) * 25, 10, 10
NEXT i
gestern - zuletzt bearbeitet gestern
Danke - habs dank Deiner Hilfe doch noch hinbekommen:
AC29EduAut:
https://www.dropbox.com/scl/fi/8mhxc8am5cg2qku3xq5bs/TreppeDuchAlleGescho-e_J.pln?rlkey=zxs56wswdvxl...
Code-Ausschnitt:
! ==================================================================
! DYNAMISCHE SEITEN (GELÄNDERSCHALTER PRO GESCHOSS)
! ==================================================================
page_start = 4
FOR p = 1 TO active_count
idx = active_story_indices[p]
st_name = t[4*(idx-1)+2] ! Name des Geschosses
! Neue Seite generieren
UI_PAGE page_start + p - 1, -1, "Geländer: " + st_name
UI_OUTFIELD "Aus-Schalter für Geschoss (+1/2): " + st_name, 10, 10, 350, 15
if p < active_count then
UI_OUTFIELD "Schalter 1, " + st_name, 230, 190, 80, 15
UI_INFIELD{2} Gschalter1[idx], 320, 190, 10, 10
UI_OUTFIELD "Schalter 2, " + st_name, 280, 130, 80, 15
UI_INFIELD{2} Gschalter2[idx], 370, 130, 10, 10
UI_OUTFIELD "Schalter 3, " + st_name, 230, 70, 80, 15
UI_INFIELD{2} Gschalter3[idx], 320, 70, 10, 10
else
endif
if p > 1 then
UI_OUTFIELD "Schalter 6, " + st_name, 60, 190, 80, 15
UI_INFIELD{2} Gschalter6[idx-1], 150, 190, 10, 10
UI_OUTFIELD "Schalter 5, " + st_name, 10, 130, 80, 15
UI_INFIELD{2} Gschalter5[idx-1], 100, 130, 10, 10
UI_OUTFIELD "Schalter 4, " + st_name, 60, 70, 80, 15
UI_INFIELD{2} Gschalter4[idx-1], 150, 70, 10, 10
else
endif
! Buttons
UI_BUTTON UI_PREV, "<< Zurück", 10, 230, 100, 25
if p < active_count then
UI_BUTTON UI_NEXT, "Nächstes Geschoss >>", 220, 230, 210, 25
endif
NEXT p