*   >> läser Utbildning artiklar >> science >> programming

Papervision 3D Programming Tutorial - Tweener

Visa DEMODOWNLOAD KODEN Omdömen

Hur ofta gör du vill flytta ett objekt med några fördefinierade belopp under en viss tidsperiod? Som "flytta till denna punkt i 2 sekunder". Denna typ av rörelse över en tidsperiod är en hörnsten i animation och skript. Tyvärr att genomföra detta i koden är ganska tråkiga. Du måste först räkna ut hur snabbt du ska röra sig, och sedan hålla reda på hur länge du faktiskt har flyttat. Det är inte svårt, men det kräver att skriva en massa tråkiga kod. Omdömen

Som tur finns det en mycket elegant lösning för denna typ av animation.

Den Tweener biblioteket kan du ändra egenskaperna för ett objekt under en viss tidsperiod med en eller två rader kod. Låt oss ta ett enkelt exempel på en modell som du vill flytta till den punkt (100, -98, 25) i 3D-rymden, och du vill att det ska ta 2 sekunder. Med Tweener du gör detta med en kodrad som Tweener.addTween (modell, {x: 100, y: -98, z: 25, tid: 2}) ;. Det är värt att notera att Tweener biblioteket har inget begrepp om 3D-rymden - det är helt enkelt ändrar egenskaperna för en medföljande föremål under en tid.

Genom att modifiera x-, y- och z-egenskaperna hos en 3D-modell vi effektivt få rörelse. Du kan lika gärna ändra rotation, öppenhet eller omfattningen av ett objekt med samma kod. Omdömen

I demoprogrammet jag har använt Tweener bibliotek för att skapa 4 kuber som flyttar till slumpmässiga punkter runt på skärmen. Kuberna själva styrs av en klass som kallas TweenedMeshObject. Du kommer att märka att TweenedMeshObject inte har någon kod som faktiskt flyttar kuber runt - det väntar helt enkelt tills Tweener är klar flyttar kuben för det och ger sedan Tweener klassen en ny destination.

Det är väldigt enkelt att koda, men möjligheterna för denna typ av skript objekt modifiering är oändliga. Omdömen

Gå tillbaka till Papervision Tutorials

Omdömen

Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.