• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

Automatikmodus bei Farbwechsel

Hi ich stehe grad auf dem Schlauch. Ich will hier ein Menü für Farbwechsel machen. Zur Auswahl sollen grün, rot, blau, ... und AUTOMATISCH stehen. Is soweit kein Problem nur die Sache mit dem automatisch will nich so wie ich das will.
bei automatisch sollen alle farben in einem bestimmten zeitintervall durchgeschaltet werden. aber wie mach ich das, das ich im automatik modus wieder auf z.b. rot wechseln kann? eine while(1)-schleife geht nicht weil er da gefangen is. kann mir da jemand helfen?
 

Cat Kew

Nutzer
Hi,

mach dir eine liste der Farben die durchzuwandern sind und eine global gültige Variable die die Listenposition der aktuell eingestellten Farbe enthält. Im Timer Event (ich hoffe du hast einen Timerevent in dem der Farbwechsel stattfindet) erhöst du dann den Index um 1 (bis zur maximalen Anzahl, dann wieder zurück auf 0) liest aus der Liste den entsprechenden Farbcocde aus und setzt ihn.

Falls es dir hilft hier ein kleines Skript von mir das in festen Zeitabständen ein zufälliges Bild anzeigt (welches im Inventar des Objektes ist).

Code:
// Displays a random picture (Texture) every 
// wait_sec Seconds
integer wait_sec = 60;
integer count_pics = 0;
integer random;
string pic_name = "";
integer on = 0;

show_pics()
{
    random = llFloor(llFrand(count_pics));
    pic_name = llGetInventoryName(0, random);
    llSetTexture(pic_name, 0);
}

default
{
    state_entry()
    {
        count_pics = llGetInventoryNumber(0);
        llWhisper(0,(string) count_pics + " pictures found");
    }

    touch_start(integer count)
    {
        if (on == 0)
        {   
            on = 1; 
            llWhisper(0,"Start displaying random picture every " + (string)wait_sec + " seconds.");
//            llTargetOmega(<0,0,1>,0.5,1);
            llSetTimerEvent(wait_sec);
        } else
        {
            on = 0;
            llWhisper(0,"Stop displaying pictures");
//            llTargetOmega(<0,0,0>,0,0);
            llSetTimerEvent(0);
        }
    }
    timer()
    {
        show_pics();
    }
}
 

Aktive User in diesem Thread

Oben Unten