Aufzug, der sich hoch und runter bewegt

Posted By: benija

Aufzug, der sich hoch und runter bewegt - 04/03/07 12:53

ich weiß niht, was ich noch machen soll...ich versuche seit stunden ein script für einen aufzug zu schrieben, der sich hoch und wieder runter bewegt.

action lift_hochfahren{
while(2){
my.z +=4*time_step;
wait(1);
}
wait(1);
while(2){
my.z-=4*time_step;
}

}


wo liegt mein fehler?
Posted By: rvL_eXile

Re: Aufzug, der sich hoch und runter bewegt - 04/03/07 13:07

Sieht komisch aus dein Script...

Schreib das mal so:

Code:

action lift_hochfahren
{
while(1)
{
If(my.z<200) //Solange my.z kleiner als 200 ist fahre hoch
{
my.z +=4*time_step;
}
If (my.z>=200) //wenn my.z == 200 ist fahre wieder runter
{
my.z-=4*time_step;
}

wait(1);
}

cYa Sebastian
Posted By: benija

Re: Aufzug, der sich hoch und runter bewegt - 04/03/07 15:11

Ne, also auch dein Script funktioniert nicht. Der aufzug fährt zwar noch oben, bleicht dann aber stehen und bewegt sich nicht mehr nch unten!
Posted By: Nicolas_B

Re: Aufzug, der sich hoch und runter bewegt - 04/03/07 16:15

Code:


action lift_hochfahren
{
while(1)
{
If(my.z<200) //Solange my.z kleiner als 200 ist fahre hoch
{
my.z +=4*time_step;
}
If (my.z>200) //wenn my.z grösser als 200 ist fahre wieder runter
{
my.z-=4*time_step;
}

wait(1);
}



So sollte es gehen
Posted By: zydar

Re: Aufzug, der sich hoch und runter bewegt - 04/03/07 16:28

ich hab mal ne Frage:
gibt es while(2) ?
ich dachte
while(1) ist wahr und
while(0) ist falsch
Posted By: aztec

Re: Aufzug, der sich hoch und runter bewegt - 04/03/07 16:33

ich glaub while(2) ist dann wieder false
Posted By: Nicolas_B

Re: Aufzug, der sich hoch und runter bewegt - 04/03/07 17:42

nimm doch einfach while (1) dan ist es sicher positiv
Posted By: rvL_eXile

Re: Aufzug, der sich hoch und runter bewegt - 04/03/07 18:00

Oder nimm den hier:

Code:


Action Fahrstuhl
{
while(my.z<100)
{

my.z +=4*time_step;

if(my.z == 100)
{

break;
}


wait(1);
}

while(my.z < 101 && my.z>=0)
{

my.z-=4*time;

If (my.z==0)
{
break;
}
wait(1);
}
}



Posted By: MikeS

Re: Aufzug, der sich hoch und runter bewegt - 04/03/07 18:13

dazu möcht ich auch was anmerken *gg*
Auch ich beschäftige mich momentan aufs heftigste mit aufzügen, und mein script funktioniert jetzt endlich.
Ich stells mal einfach hier mit rein :-))

Die basisidee dabei war:

ich wollte mehrere aufzüge in einem level erstellen, und dabei easy im wed die aufzüge "einstellen".

Ich habs über den ansatz gemacht, den aufzügen und ihren dazugehörigen knöpfen ein paar skills zu geben, die ich im wed einstellen kann, so dass jeder knopf weiß zu welchem aufzug er gehört.

Mann muss hierbei nur eine einzige "Knopf entity" kreiren, und nur einen einzigen aufzug, alles ander machst du über wed.

Die besonderheit die ich gerade fertiggestellt hab, war die Knöpfe, die sich im aufzug befinden an der stelle festzumachen, an der sie sein sollen. *gg*

Schaus dir mal an, bei fragen gern PM

// Script Ele_movement.wdl
// Beinhaltet alle Bewegungsbefehle für den Aufzug
// sowie alle befehle für die Kontroll und Rufknöpfe
////////////////////////////////////////////////////////////////////////////
entity* elevator; // definition of elevator entity
entity* button_call;
entity* button_control;
////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
define Floor,SKILL1; // definition of Name Skill1
define Elevator_ID,Skill2; // definition of Name Skill2
define Elevator_call,Flag1; // definition of Name Flag1
define Elevator_controler, Flag2;
define Elevator_control_attached, Flag3;
//////////////////////////////////////////////////////////////
// uses Elevator_call,Floor,
function event_touch_click_call_button() // function of entity Button_call
{

if (event_type == event_touch)
{
my.ambient = 100;
}
if (event_type == event_release)
{
my.ambient = 0;
}

if (event_type == event_click) // if clicked, move button,and set elevator_call to 1
{
my.flag1 = on; // sets elevator_call to on
my.x -= 5;
sleep (0.5);
my.x +=5;
my.red = 255;
my.blue = 255;
my.green = 255;
}
}
//uses elevator_controler,
function event_touch_click_control_button() //function of elevator control button
{
if (event_type == event_touch)
{
my.ambient = 100;
}
if (event_type == event_release)
{
my.ambient = 0;
}
if (event_type == event_click)
{
my.flag2 = on;
my.x -= 5;
sleep (0.5);
my.x += 5;
my.red = 255;
my.blue = 255;
my.green = 255;
}
}
//uses elevator_controler,elevator_id,floor,
action elevator_calling
{
button_call = me;
my.enable_release = on;
my.enable_click = on;
my.enable_touch = on;
my.light = on;
my.lightrange = 0;
my.event = event_touch_click_call_button;
while(1)
{
you = ent_next(NULL);
while (you)
{
while(Your.flag2 == on) && (my.skill2 == your.skill2) && (my.skill1 == your.skill1)
{
my.flag1 = on;
my.red = 255;
my.blue = 255;
my.green = 255;
beep;

while((my.z < elevator.z || my.z > elevator.z)&& (my.flag1 == on))
{
wait(1);
}
your.flag2 = off;
your.red = 0;
your.green = 0;
your.blue = 0;
beep;
wait (1);
}
wait(1);
you = ent_next(you); //der hier hat nen error gebracht, weil in () nix drinn war glaub ich
}
you = ent_next(you);
wait (1);
}
}



action elevator_control
{
var control_button_height_var;
button_control = me;

my.enable_release = on;
my.enable_click = on;
my.enable_touch = on;
my.light = on;
my.lightrange = 0;
my.event = event_touch_click_control_button;
while(1)
{
you = ent_next(NULL);
while (you)
{
control_button_height_var = my.z - your.z;

while(Your.flag3 == on) && (my.skill2 == your.skill2)
{

my.z = your.z + control_button_height_var;
wait(1);
}
wait (1);

wait(1);
you = ent_next(you);
}
you = ent_next(you);
wait (1);
}
}


// uses elevator_id,elevator_call,floor,
action elevator_move

{

elevator = me;

while(1)
{
you = ent_next(NULL);
while (you)
{
If(Your.flag1 == on) && (my.skill2 == your.skill2) && (my.z < your.z)
{
while(my.z < you.z)
{
my.z +=1*time;
wait(1);
}

your.flag1 = 0;
your.red = 0;
your.green = 0;
your.blue = 0;

}

If(Your.flag1 == on) && (my.skill2 == your.skill2) && (my.z > your.z)
{
while(my.z > your.z)
{
my.z -=1*time;
wait(1);
}
your.flag1 = 0;
your.red = 0;
your.green = 0;
your.blue = 0;
}
wait (1);
you = ent_next(you);

}

you = ent_next(you);

wait(1);

}



}







Posted By: Xarthor

Re: Aufzug, der sich hoch und runter bewegt - 04/03/07 18:24

Nur damit die while(0) while(1) while(2) frage hier nicht ungeklärt im raum steht:
while(ausdruck) { }
Dies ist eine schleife die solange ausgeführt wird bis der "ausdruck" == "false" ist.
"false" kann sein == 0, also würde while(0) nicht durchlaufen werden.

jede andere zahl ist "true"
Also es macht keine unterschied ob du while(1), while(2) oder while(25) schreibst.
Posted By: Anonymous

Re: Aufzug, der sich hoch und runter bewegt - 04/03/07 21:17

Hier ein etwas älterer (aber dennoch funktionierender) Lösungsansatz für eine Lift.
Siehe meinen code...
© 2024 lite-C Forums