abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
DE
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Hmooslechner
Moderator

GDL - Problem - Array-Schalter im UI-Dialog

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.

Hmooslechner_0-1778918102892.png

 

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...

AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
2 ANTWORTEN 2
Jochen Suehlo
Moderator Emeritus

Probier mal was ganz simples:

FOR i = 1 TO 10
	UI_INFIELD{2} Gschalter1[i], 20, (i - 1) * 25, 10, 10
NEXT i
Jochen Suehlo . AC12-29 . MAC OSX 26 . WIN11
GDL object creation: b-prisma.de
Hmooslechner
Moderator

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


 

AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia

Keine Antwort gefunden?

Andere Beiträge
im Board ansehen

Zurück zum Board

Neueste Lösungen durchsuchen

Akzeptierte Lösungen zeigen

Eine neue Diskussion starten!

Neues Thema erstellen