Change font size
It is currently Sat Sep 21, 2019 9:26 pm

Forum rules


{L_IMAGE}



Post a new topicPost a reply Page 1 of 1   [ 9 posts ]
Author Message
 Post subject: book with turning pages (dictionary)
PostPosted: Sat Jun 01, 2019 9:12 am 
Furious Typer

Joined: Mon Feb 13, 2017 1:53 pm
Posts: 65
Hi again!
I've built a book with turning pages according to this tutorial:
https://www.youtube.com/watch?v=6Wb7l4ZLr6E

I'm posting the main script below.

My idea is to use the book as a dictionary to look up words.
Every page displays a texture.
If you click on the book, the page opens, displaying one word (German).
If you click again, the page turns over, displaying the English version of that word on the same prim and so on.
This already works.

The editing for each new word, though, is a bit tiring.
So far you have to repeat this part for each new word again and again and adjust it by hand each time:

{L_CODE}:
if(count == 0)
    {
        llMessageLinked(LINK_SET,0,"page",NULL_KEY);
        llSleep(2);
        llSetLinkTexture(5,abwaschen,1);
        //llSleep(2);
        //llSetLinkTexture(7,page3,1);
        count =1;
        return;
    }


What I would like to do is to simplify the script
so that the transition from one word to the next in the script can be written more easily.
Maybe this could be done using a list at the beginning of the script,
but this is unknown to me so far.

Do you maybe have an idea of how to do this?
Thanks! :-)

Here is the main script
{L_CODE}:
//written by Rebecca Davis, 06/01/2019
//https://www.youtube.com/watch?v=6Wb7l4ZLr6E
key abwaschen ="bbc9262f-d662-416c-abad-69ebca92d56f";
key washup ="38fc5655-da66-4e4d-874d-5a3a8169f75d";
key anrufen ="2de8fae6-a9dc-4cd0-a3eb-f6c8076a2cfe";
key call ="3ae9748d-ed1c-4d3c-95a8-d66a9e8f025d";
key arbeitsstelle ="bb16a1b8-5021-4611-a6cd-a7d0b56715fc";
key job ="d2c67a8b-572d-4906-9fa0-45676d7e94be";
key beschaeftigtsein ="573945dd-5e1a-4980-a65b-415d085ef53d";
key bebusy ="675ace40-d782-441c-8847-36a5d5371838";

integer count=0;
integer book=FALSE;



open()
{
    llSetRot(<0.000000, 0.000000, 0.000000, 1.000000>);
    llMessageLinked(LINK_SET,0,"open",NULL_KEY);
}

close()
{
    llMessageLinked(LINK_SET,0,"close",NULL_KEY);
    llSetRot(<0.000000, 0.707107, 0.000000, 0.707107>);   
}


page()
{
   
    if(count == 0)
    {
        llMessageLinked(LINK_SET,0,"page",NULL_KEY);
        llSleep(2);
        llSetLinkTexture(5,abwaschen,1);
        //llSleep(2);
        //llSetLinkTexture(7,page3,1);
        count =1;
        return;
    }

    else if(count == 1)
    {
        llMessageLinked(LINK_SET,0,"page",NULL_KEY);
        llSleep(2);
        llSetLinkTexture(5,washup,1);
        //llSleep(2);
        //llSetLinkTexture(7,page1,1);
        count =2;
        return;
    }
   
    else if(count == 2)
    {
        llMessageLinked(LINK_SET,0,"page",NULL_KEY);
        llSleep(2);
        llSetLinkTexture(5,anrufen,1);
        //llSleep(2);
        //llSetLinkTexture(7,page1,1);
        count =3;
        return;
    }
   
    else if(count == 3)
    {
        llMessageLinked(LINK_SET,0,"page",NULL_KEY);
        llSleep(2);
        llSetLinkTexture(5,call,1);
        //llSleep(2);
        //llSetLinkTexture(7,page1,1);
        count =4;
        return;
    }
   
    else if(count == 4)
    {
        llMessageLinked(LINK_SET,0,"page",NULL_KEY);
        llSleep(2);
        llSetLinkTexture(5,arbeitsstelle,1);
        //llSleep(2);
        //llSetLinkTexture(7,page1,1);
        count =5;
        return;
    }
   
    else if(count == 5)
    {
        llMessageLinked(LINK_SET,0,"page",NULL_KEY);
        llSleep(2);
        llSetLinkTexture(5,job,1);
        //llSleep(2);
        //llSetLinkTexture(7,page1,1);
        count =6;
        return;
    }
   
    else if(count == 6)
    {
        llMessageLinked(LINK_SET,0,"page",NULL_KEY);
        llSleep(2);
        llSetLinkTexture(5,beschaeftigtsein,1);
        //llSleep(2);
        //llSetLinkTexture(7,page1,1);
        count =7;
        return;
    }
   
    else if(count == 7)
    {
        llMessageLinked(LINK_SET,0,"page",NULL_KEY);
        llSleep(2);
        llSetLinkTexture(5,bebusy,1);
        //llSleep(2);
        //llSetLinkTexture(7,page1,1);
        count =0;
        return;
    }
   
  }

default
{
    touch_start(integer total_number)
            {
            if(llDetectedLinkNumber(0) == 7 || llDetectedLinkNumber(0) == 5)
            {
                page();
            }
       
            else
            if(book)
            {
                close();
                book = FALSE;
                return;
            }   
           
            else
            {
                open();
                book = TRUE;
                return;
            }     
       
       
   
    }
}


Top
 Profile  
 
 Post subject: Re: book with turning pages (dictionary)
PostPosted: Sat Jun 01, 2019 1:58 pm 
Furious Typer
User avatar

Joined: Fri Mar 26, 2010 12:11 pm
Posts: 235
Location: Belgium / Brussels
Hello,

You did not provide all the script, it misses the link message reciever.
It's hard for me to guess the missing script ...
Then I could help you better.

However I can already tell you that you could realize this with a single scripy and use a list or notecard for example.

Have you already tried with this one:
viewtopic.php?f=5&t=3914
There are already many book scripts ...

_________________
Webmaster @ digitalconcepts.free.fr & digigrids.free.fr


Top
 Profile  
 
 Post subject: Re: book with turning pages (dictionary)
PostPosted: Sat Jun 01, 2019 3:11 pm 
Furious Typer

Joined: Mon Feb 13, 2017 1:53 pm
Posts: 65
Hi!
Thanks for your quick reply.
Thanks for the link, too.
Yes, I had looked at those scripts.
What I like about this one is the fact that it is animated:
It starts as a closed book and is opened when the cover is clicked on.
When you click on one of the two opened pages,
it flips over an animated page each time.
When you click on the cover again, the book closes again.

The book has 4 different scripts.
1. The one I posted above is in the root prim, the book spine.
2. Then there is a script for each of the opened book pages.
3. There is another script for the book page that is being flipped over each time (animation).
4. And there is a script for each of the two book covers.

2. The opened book pages (the same script for both, only with different rotation, position and scale values):
{L_CODE}:
open()
{
    llSetScale(<2.63332,1.05566,3.38627>);
    llSetLocalRot(<-0.707107,0.000000,0.000000,0.707107>);
        llSetPos(<-0.886887,0.023163,-0.146915>);
}

close()
{
    llSetScale(<1.0,0.4,2.0>);
    llSetLocalRot(<-0.526718,0.485071,0.495843,0.491339>);
    llSetPos(<-0.304840,0.268318,0.675728>);
}


default
{
    //state_entry()
    //{
        //llOwnerSay("llSetLocalRot("+(string)llGetLocalRot()+");
        //llSetPos("+(string)llGetLocalPos()+");");
    //}
         
          link_message(integer from, integer chan, string msg, key who)
            {
            if(msg == "open")
            {
                open();
                return;
            }
       
            else if(msg == "close")
            {
                close();
                return;
            }       
     
    }
}


3. animated book page:
{L_CODE}:
float wait = 0.2;

page()
{
llSetAlpha(1,ALL_SIDES);
//llSleep(wait);
llSetLocalRot(<0.698401,-0.110616,0.110616,0.698401>);
//llSleep(wait);
llSetLocalRot(<0.676210,-0.206738,0.206738,0.676209>);
//llSleep(wait);
llSetLocalRot(<0.650895,-0.276289,0.276289,0.650895>);
//llSleep(wait);
llSetLocalRot(<0.627211,-0.326506,0.326506,0.627211>);
//llSleep(wait);
llSetLocalRot(<0.602908,-0.369462,0.369463,0.602907>);
//llSleep(wait);
llSetLocalRot(<0.572062,-0.415627,0.415627,0.572061>);
//llSleep(wait);
llSetLocalRot(<0.533660,-0.463904,0.463904,0.533660>);
//llSleep(wait);
llSetLocalRot(<0.486740,-0.512917,0.512918,0.486740>);
//llSleep(wait);
llSetLocalRot(<0.444997,-0.549525,0.549526,0.444996>);
//llSleep(wait);
llSetLocalRot(<0.400510,-0.582745,0.582746,0.400509>);
//llSleep(wait);
llSetLocalRot(<0.353554,-0.612372,0.612373,0.353552>);
//llSleep(wait);
llSetLocalRot(<0.315510,-0.632814,0.632815,0.315509>);
//llSleep(wait);
llSetLocalRot(<0.264887,-0.655618,0.655618,0.264886>);
//llSleep(wait);
llSetLocalRot(<0.218508,-0.672498,0.672499,0.218507>);
//llSleep(wait);
llSetLocalRot(<0.159064,-0.688983,0.688984,0.159063>);
//llSleep(wait);
llSetLocalRot(<0.104517,-0.699340,0.699340,0.104515>);
//llSleep(wait);
llSetLocalRot(<0.061628,-0.704416,0.704417,0.061626>);
//llSleep(wait);
llSetLocalRot(<0.012341,-0.706999,0.707000,0.012338>);
//llSleep(wait);
llSetLocalRot(<0.706138,0.037007,-0.037007,0.706138>);
//llSleep(wait);
llSetLocalRot(<0.706138,0.037007,-0.037007,0.706138>);

}

open()
{
    llSetAlpha(0,ALL_SIDES);
    llSetScale(<4,0.01,3.48000>);
    llSetLocalRot(<0.706138,0.037007,-0.037007,0.706138>);
    llSetPos(<0.028801,0.058060,0.312893>);
   
}

close()
{
    llSetAlpha(1,ALL_SIDES);
    llSetScale(<3.6,1,3.48000>);
    llSetLocalRot(<0.500000,-0.500000,0.500000,0.500000>);
    llSetPos(<0.017502,-0.000038,-0.090988>);
   
}


default
{
    state_entry()
   
    {
        llSleep(2);
        //llOwnerSay("
        //llSetLocalRot"+(string)llGetLocalRot()+");");
        page();
    }
   
    link_message(integer from, integer chan, string msg, key who)
    {
        if(msg == "open")

        {
            open();
            return;
        }
       
        else if(msg == "close")
        {
            close();
            return;
        }
       
         else if(msg == "page")
        {
            page();
            return;
        }
     
         
    }
}


4. the two book covers (same script for both, only with different values):
{L_CODE}:
open()
{
     llSetLocalRot(<0.259492, 0.247161, -0.659927, 0.660358>);
}

close()
{
     llSetLocalRot(<-0.379928, -0.379928, -0.596368, 0.596368>);
}


default
{
    //state_entry()
    //{
        //llOwnerSay("\n llSetLocalRot("+(string)llGetLocalRot()+");");
    //}
    link_message(integer from, integer chan, string msg, key who)
    {
        if(msg == "open")
        {
            open();
            return;
        }
       
        else if(msg == "close")
        {
            close();
            return;
        }
                     
    }
               
}


Thank you very much for your help!


Top
 Profile  
 
 Post subject: Re: book with turning pages (dictionary)
PostPosted: Sat Jun 01, 2019 10:59 pm 
Furious Typer
User avatar

Joined: Fri Mar 26, 2010 12:11 pm
Posts: 235
Location: Belgium / Brussels
These 2 examples should help you ... :)

Change texture from list:
{L_CODE}:
// Texture change (list based) v0.1 by djphil (CC-BY-NC-SA 4.0)

list textures = [
    "UUID",
    "OR",
    "NAME" 
];

integer total;
integer count;

default
{
    state_entry()
    {
        total = llGetListLength(textures);
        if (total < 2) llOwnerSay("Add more texture please ...");
    }

    touch_start(integer n)
    {
        if (count >= total) count = 0;
        string texture = llList2String(textures, count++);
        llSetTexture(texture, ALL_SIDES);
    }
}
Change texture from inventory:
{L_CODE}:
//  Texture change (inventory based) v0.1 by djphil (CC-BY-NC-SA 4.0)

integer total;
integer count;

default
{
    state_entry()
    {
        total = llGetInventoryNumber(INVENTORY_TEXTURE);
        if (total < 2) llOwnerSay("Add more texture please ...");
    }

    touch_start(integer n)
    {
        if (count >= total) count = 0;
        string texture = llGetInventoryName(INVENTORY_TEXTURE, count++);
        llSetTexture(texture, ALL_SIDES);       
    }
}

_________________
Webmaster @ digitalconcepts.free.fr & digigrids.free.fr


Top
 Profile  
 
 Post subject: Re: book with turning pages (dictionary)
PostPosted: Sun Jun 02, 2019 12:44 pm 
Furious Typer

Joined: Mon Feb 13, 2017 1:53 pm
Posts: 65
Hi again!
Thank you very much for your scripts.
I got the book to work using them and in a much easier way in terms of editing.
Thank you very much! :-)

For the potential benefit of other users,
I'm posting the newest version of all scripts below
(By copying the scripts including their values you should be able to build the book rather quickly.
All prims must be built using path cut 0.125 and 0.625, except for the second of the two pages.
For this one I used path cut 0.500 and 1.000):

1. The simplified version of the main script in the root prim (book spine);
shorter now, because it does not change the textures any more.
I used a simple cube-shaped prim for the spine to make the rotation easier to manage:
{L_CODE}:
//written by Rebecca Davis, 06/01/2019
//https://www.youtube.com/watch?v=6Wb7l4ZLr6E

integer book=FALSE;

open()
{
    llSetRot(<0.000000, 0.000000, 0.000000, 1.000000>);
    llMessageLinked(LINK_SET,0,"open",NULL_KEY);
}

close()
{
    llMessageLinked(LINK_SET,0,"close",NULL_KEY);
    llSetRot(<0.000000, 0.707107, 0.000000, 0.707107>);   
}


default
{
    touch_start(integer total_number)
            {
                       
            if(book)
            {
                close();
                book = FALSE;
                return;
            }   
           
            else
            {
                open();
                book = TRUE;
                return;
            }     
               
    }
}



2. The script changing the textures
(I put it into the page displaying the textures,
to keep the touch_start from interfering with the touch_start in the main script, which starts the animations.
You can put the script in the second page of the book, too.):
{L_CODE}:
//  Texture change (inventory based) v0.1 by djphil (CC-BY-NC-SA 4.0)

integer total;
integer count;

default
{
    state_entry()
    {
        total = llGetInventoryNumber(INVENTORY_TEXTURE);
        if (total < 2) llOwnerSay("Add more texture please ...");
    }

    touch_start(integer n)
    {
        llMessageLinked(LINK_SET,0,"page",NULL_KEY);
        llSleep(2);
        if (count >= total) count = 0;
        string texture = llGetInventoryName(INVENTORY_TEXTURE, count++);
        llSetLinkTexture(5,texture,1);
        //llSetLinkTexture(7,texture,1);

//llSetLinkTexture makes it possible to change the textures of both pages at one touch;
//llSetTexture(texture, ALL_SIDES); is also possible and easier to use,
//because that way you don't have to find out the link and face number of the prim (here: link 5, face 1 and link 7, face 1).
       
return;       
    }
}



3. The main script of page 1:
{L_CODE}:
open()
{
    llSetScale(<2.63332,1.05566,3.38627>);
    llSetLocalRot(<-0.707107,0.000000,0.000000,0.707107>);
        llSetPos(<-0.886887,0.023163,-0.146915>);
}

close()
{
    llSetScale(<1.0,0.4,2.0>);
    llSetLocalRot(<-0.526718,0.485071,0.495843,0.491339>);
    llSetPos(<-0.304840,0.268318,0.675728>);
}


default
{
    //state_entry()
    //{
        //llOwnerSay("llSetLocalRot("+(string)llGetLocalRot()+");
        //llSetPos("+(string)llGetLocalPos()+");");
    //}
         
          link_message(integer from, integer chan, string msg, key who)
            {
            if(msg == "open")
            {
                open();
                return;
            }
       
            else if(msg == "close")
            {
                close();
                return;
            }       
     
    }
}


4. The main script of page 2, the same as that from page 1, only with different values:
{L_CODE}:
open()
{
    llSetScale(<0.52912,2.75000,3.50000>);
    llSetLocalRot(<-0.448241,0.543556,0.547444,0.451589>);
    llSetPos(<1.349640,0.048854,0.012693>);
}

close()
{
    llSetScale(<0.40244,1.5,2.5>);
    llSetLocalRot(<-0.707107,0.000000,0.000000,0.707107>);
    llSetPos(<0.317926,-0.374023,1.071159>);
}


default
{
    //state_entry()
    //{
        //llOwnerSay("llSetLocalRot("+(string)llGetLocalRot()+");
        //llSetPos("+(string)llGetLocalPos()+");");
    //}
         
          link_message(integer from, integer chan, string msg, key who)
            {
            if(msg == "open")
            {
                open();
                return;
            }
       
            else if(msg == "close")
            {
                close();
                return;
            }       
     
    }
}



5. The animated book page:
{L_CODE}:
float wait = 0.2;

page()
{
llSetAlpha(1,ALL_SIDES);
//llSleep(wait);
llSetLocalRot(<0.698401,-0.110616,0.110616,0.698401>);
//llSleep(wait);
llSetLocalRot(<0.676210,-0.206738,0.206738,0.676209>);
//llSleep(wait);
llSetLocalRot(<0.650895,-0.276289,0.276289,0.650895>);
//llSleep(wait);
llSetLocalRot(<0.627211,-0.326506,0.326506,0.627211>);
//llSleep(wait);
llSetLocalRot(<0.602908,-0.369462,0.369463,0.602907>);
//llSleep(wait);
llSetLocalRot(<0.572062,-0.415627,0.415627,0.572061>);
//llSleep(wait);
llSetLocalRot(<0.533660,-0.463904,0.463904,0.533660>);
//llSleep(wait);
llSetLocalRot(<0.486740,-0.512917,0.512918,0.486740>);
//llSleep(wait);
llSetLocalRot(<0.444997,-0.549525,0.549526,0.444996>);
//llSleep(wait);
llSetLocalRot(<0.400510,-0.582745,0.582746,0.400509>);
//llSleep(wait);
llSetLocalRot(<0.353554,-0.612372,0.612373,0.353552>);
//llSleep(wait);
llSetLocalRot(<0.315510,-0.632814,0.632815,0.315509>);
//llSleep(wait);
llSetLocalRot(<0.264887,-0.655618,0.655618,0.264886>);
//llSleep(wait);
llSetLocalRot(<0.218508,-0.672498,0.672499,0.218507>);
//llSleep(wait);
llSetLocalRot(<0.159064,-0.688983,0.688984,0.159063>);
//llSleep(wait);
llSetLocalRot(<0.104517,-0.699340,0.699340,0.104515>);
//llSleep(wait);
llSetLocalRot(<0.061628,-0.704416,0.704417,0.061626>);
//llSleep(wait);
llSetLocalRot(<0.012341,-0.706999,0.707000,0.012338>);
//llSleep(wait);
llSetLocalRot(<0.706138,0.037007,-0.037007,0.706138>);
//llSleep(wait);
llSetLocalRot(<0.706138,0.037007,-0.037007,0.706138>);

}

open()
{
    llSetAlpha(0,ALL_SIDES);
    llSetScale(<4,0.01,3.48000>);
    llSetLocalRot(<0.706138,0.037007,-0.037007,0.706138>);
    llSetPos(<0.028801,0.058060,0.312893>);
   
}

close()
{
    llSetAlpha(1,ALL_SIDES);
    llSetScale(<3.6,1,3.48000>);
    llSetLocalRot(<0.500000,-0.500000,0.500000,0.500000>);
    llSetPos(<0.017502,-0.000038,-0.090988>);
   
}


default
{
    state_entry()
   
    {
        llSleep(2);
        //llOwnerSay("
        //llSetLocalRot"+(string)llGetLocalRot()+");");
        page();
    }
   
    link_message(integer from, integer chan, string msg, key who)
    {
        if(msg == "open")

        {
            open();
            return;
        }
       
        else if(msg == "close")
        {
            close();
            return;
        }
       
         else if(msg == "page")
        {
            page();
            return;
        }
     
         
    }
}


6. the animated book cover no 1 (opening and closing on touch):
{L_CODE}:
open()
{
     llSetLocalRot(<0.000000, 0.000000, -1.000000, 0.000000>);
}

close()
{
     llSetLocalRot(<-0.707107, 0.000000, -0.707107, 0.000000>);
}


default
{
    //state_entry()
    //{
        //llOwnerSay("\n llSetLocalRot("+(string)llGetLocalRot()+");");
    //}
    link_message(integer from, integer chan, string msg, key who)
    {
        if(msg == "open")
        {
            open();
            return;
        }
       
        else if(msg == "close")
        {
            close();
            return;
        }
       
       
       
    }
               
}


7. Animated book cover no 2:
{L_CODE}:
open()
{
        llSetLocalRot(<0.000000, 0.000000, 0.000000, 1.000000>);
}

close()
{
       llSetLocalRot(<0.000000, -0.707107, 0.000000, 0.707107>);
}


default
{
    //state_entry()
    //{
        //llOwnerSay("\n llSetLocalRot("+(string)llGetLocalRot()+");");
    //}
    link_message(integer from, integer chan, string msg, key who)
    {
        if(msg == "open")

        {
            open();
            return;
        }
       
        else if(msg == "close")
        {
            close();
            return;
        }
       
       
       
    }
               
}


8. Script to find out the rotation, position and scale of the prims, which must be written into the scripts of the prims:
{L_CODE}:
default
{
    state_entry()
    {
        llOwnerSay("
        llSetLocalRot("+(string)llGetLocalRot()+");
        llSetPos("+(string)llGetLocalPos()+");
        llSetScale("+(string)llGetScale()+");");
    }
}   


9. Script to find out the prim number and face of the pages displaying the textures, in case you are using llSetLinkTexture, as described above:
{L_CODE}:
default
{
    touch_start(integer total_number)
            {
               
                llOwnerSay("Link = "+(string)llGetLinkNumber());
                llOwnerSay("face = "+(string)llDetectedTouchFace(0) );
               
            }
           
        }


There is always room for improvement, so readers feel free to comment again.
Thank you very much again! :-)


Top
 Profile  
 
 Post subject: Re: book with turning pages (dictionary)
PostPosted: Sun Jun 02, 2019 2:10 pm 
Furious Typer
User avatar

Joined: Fri Mar 26, 2010 12:11 pm
Posts: 235
Location: Belgium / Brussels
Cool, we have progressed. :)

Ok now try to follow this reasoning.
- We have 1 region with 10 parcels.
- On each parcel we have 1 bookstore.
- In each bookstore we have 10 shelves.
- On each shelf we have 10 books.
- In each book we have 7 scripts.
How much script do we have in total ?

Mmmm it's impressive, 7000 scripts ...
We could easily reduce this to 1000 scripts ...
It's still 7 times less, 6000 scripts less ...

Cool, we can still progress. :)

_________________
Webmaster @ digitalconcepts.free.fr & digigrids.free.fr


Top
 Profile  
 
 Post subject: Re: book with turning pages (dictionary)
PostPosted: Mon Jun 10, 2019 7:19 am 
Furious Typer
User avatar

Joined: Fri Mar 26, 2010 12:11 pm
Posts: 235
Location: Belgium / Brussels
This is mine, 4 prims & 1 script:

_________________
Webmaster @ digitalconcepts.free.fr & digigrids.free.fr


Top
 Profile  
 
 Post subject: Re: book with turning pages (dictionary)
PostPosted: Tue Jun 11, 2019 7:03 am 
Furious Typer

Joined: Mon Feb 13, 2017 1:53 pm
Posts: 65
Wow!
Amazing.
That's great work. :-)
Reduces the number of scripts enormously
and hence the time needed to build the book.

I wouldn't mind seeing that script. ;-)
Cheers!


Top
 Profile  
 
 Post subject: Re: book with turning pages (dictionary)
PostPosted: Wed Jun 12, 2019 12:22 pm 
Furious Typer
User avatar

Joined: Fri Mar 26, 2010 12:11 pm
Posts: 235
Location: Belgium / Brussels
If you see this script then you're not going to try to improve yours :P

For example, this sequence of rotations ...
This should be a list and then you will loop through the list. This to avoid repetitions.
It will also be much easier for you to make changes, and also find the bugs.
Look how many times you write llSleep (wait); ... in a loop you write it only once.
But why capture all these positions and rotations ...
We know the position and the rotation of the beginning and the end.
We just have to increment, no need to do all the rest.

If you script is more light and easy to read then it is also easier to understand and find the bugs.

These are just tips, do with what you want :P

_________________
Webmaster @ digitalconcepts.free.fr & digigrids.free.fr


Top
 Profile  
 
Display posts from previous:  Sort by  
Post a new topicPost a reply Page 1 of 1   [ 9 posts ]


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
610nm Style by Daniel St. Jules of Gamexe.net