script pour faire avancer un objet

Répondre
Partager Rechercher
Citation :
Publié par arbald T
merci a vous

et donc je peut que rennoncer
Non ! Tu peux te lancer un défi et coder un train. Même si la tâche est difficile elle n'est pas insurmontable.
Là on est dans le plus simple...

Il te faut une liste de vecteurs + llSetPos.

Pas trop le temps mais je pense qu'un gentil membre va te donner la trame du script
Funny script
Je t'ai écris un petit script...


Code PHP:

list    liste_des_positions;

vector  Bleu = <0.0,0.0,1.0 >;
vector  Vert = <0.0,1.0,0.0 >;
vector  Rouge = <1.0,0.0,0.0 >;

key     Blank_Texture "1c593d46-f6c1-ff74-73f4-21f2c903aac3";

float   tempo


default
{
    
on_rez(integer start_param)
    {
        if (
llGetAttached( ))
        {
            
tempo 1;
            
liste_des_positions = [];
            
llSetScale( <0.2,0.2,0.2>);
            
llSetTextureBlank_Texture,ALL_SIDES);
            
llSetColor Rouge,ALL_SIDES);            
        }  
    }

    
touch_start(integer total_number)
    {
   
        if (
llGetAttached( ))
        {
            if ( 
llGetListLengthliste_des_positions ) == )
            {
                
llSetColor Bleu,ALL_SIDES); 
                
llSetTimerEvent(tempo);
            }
            else
            {
                
llSetColor Vert,ALL_SIDES);     
                
llSetTimerEvent(0);
                
llOwnerSay("Stopped");
            }    
        }
        else
        {
            
llSetColor Bleu,ALL_SIDES);     
            
integer i;
            
            
integer n_positions llGetListLength(liste_des_positions);
                    
            for (
i=0n_positions; ++)
            {
                
llSetPosllList2Vectorliste_des_positionsi));
                
llSleep(tempo);
            }
        }    
    }
    
timer()
    {
        
liste_des_positions += llGetPos();
        
llOwnerSay("Position :" + (string) llGetListLength(liste_des_positions) + " mémorisée" );
    }
    

Méthode:

Tu créé une box simple et tu glisses ce funny script dedans...

ensuite prend le dans ton inventaire et tu l'attaches comme HUD center ( ou autre)

tu cliques dessus et tu marches 15 secondes en décrivant un cercle.

tu cliques again pour stopper la mémorisation.

tu détaches l'objet et tu le poses au sol.

Tu cliques dessus et là .... il va refaire le parcours que tu as fais précédemment!

De rien...

Tu peux réaliser le parcours que tu veux et même voler!
Tu peux changer la valeur de la tempo aussi si tu veux échantillonner + ou - vite.
Tu peux aussi intégrer la fonction

llGround( vector offset ); pour suivre le dénivelé du sol ...
...
Code PHP:

list    liste_des_positions;

vector  Bleu = <0.0,0.0,1.0 >;
vector  Vert = <0.0,1.0,0.0 >;
vector  Rouge = <1.0,0.0,0.0 >;

key     Blank_Texture "1c593d46-f6c1-ff74-73f4-21f2c903aac3";

float   tempo


default
{
    
on_rez(integer start_param)
    {
        if (
llGetAttached( ))
        {
            
tempo .5;
            
liste_des_positions = [];
            
//llSetScale( <0.2,0.2,0.2>);
            
llSetTextureBlank_Texture,ALL_SIDES);
            
llSetColor Rouge,ALL_SIDES);            
        }  
    }

    
touch_start(integer total_number)
    {
   
        if (
llGetAttached( ))
        {
            if ( 
llGetListLengthliste_des_positions ) == )
            {
                
llSetColor Bleu,ALL_SIDES); 
                
llSetTimerEvent(tempo);
            }
            else
            {
                
llSetColor Vert,ALL_SIDES);     
                
llSetTimerEvent(0);
                
llOwnerSay("Stopped");
            }    
        }
        else
        {
            
llSetColor Bleu,ALL_SIDES);     
            
integer i;
            
            
integer n_positions llGetListLength(liste_des_positions);
                    
            for (
i=0n_positions)
            {
                
llSetPosllList2Vectorliste_des_positionsi));
                
llSetRotllList2Rotliste_des_positionsi+1));
                
llSleep(tempo);
            }
        }    
    }
    
timer()
    {
        
vector pos llGetPos();
        
liste_des_positions += [< pos.xpos.llGround(pos)>, llGetRot()] ;
        
llOwnerSay("Position :" + (string) llGetListLength(liste_des_positions) + " mémorisée" );
    }
    

A tester ...
Citation :
Publié par Seb_01
Chisty à fait son cube, momo fais nous un train ... as tu perdu ton âme d'enfant?
Je dois t'avouer que l'idée me trotte un peu dans la tête mais je n'ai pas encore trouvé la solution la plus élégante. Quand j'aurai bouclé un nouveau tuto et quelques scripts en rade...


Avoue que tu as tout pour nous faire un train sympa non? (sauf le temps) .

Pose 2 rails et un cube physique entre, donne lui un coup de pied il devrait faire quelques mètres ... et bloquer au premier virage...

Cela te coûtera quelques insomnies... et tu connais la devises des programmeurs?
100 fois tu te remettras etc...
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés