Neat camera and arrows thingy
I made this a while back for one of my classes. Not sure if it’s really helpful for anything, but I’m just going to file it under “camera” since it shows a technique to have the camera move around.
*note – this uses a custom Arrow.as class that’s included with the download.
package { import gs.TweenMax; import gs.easing.Cubic; import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.shadematerials.FlatShadeMaterial; import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.view.BasicView; import org.pv3d.objects.Arrow; [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class FollowCam extends BasicView { private var dummyObject:DisplayObject3D; private var light:PointLight3D; private var origin:DisplayObject3D; public function FollowCam() { origin = DisplayObject3D.ZERO; light = new PointLight3D(); dummyObject = new DisplayObject3D(); camera.fov = 120; for (var i:Number = 0;i < 50; i++) { var arrow:Arrow = new Arrow(new FlatShadeMaterial(light, 0xcc0000, 0x000000)); arrow.x = Math.cos(i) * 2000 - 1000; arrow.y = 4000 / 50 * i - 2000; arrow.z = Math.sin(i) * 2000 - 1000; arrow.lookAt(origin); scene.addChild(arrow); } var sphereMaterial:FlatShadeMaterial = new FlatShadeMaterial(light, 0x00cc00, 0x000000); sphereMaterial.doubleSided = true; var sphere:Sphere = new Sphere(sphereMaterial, 6100, 30, 30); scene.addChild(sphere); loopTweenMax(); } private function loopTweenMax():void { var bt:Array = []; for (var i:Number = 0;i < 3; i++) { bt.push({ x:Math.random() * 6000 - 3000, y:Math.random() * 6000 - 3000, z:Math.random() * 6000 - 3000 }); } TweenMax.to(dummyObject, 20, { x:Math.random() * 6000 - 3000, y:Math.random() * 6000 - 3000, z:Math.random() * 6000 - 3000, bezierThrough:bt, ease:Cubic.easeInOut, onUpdate:onTweenUpdate, onComplete:loopTweenMax }); } private function onTweenUpdate():void { singleRender(); camera.lookAt(dummyObject); camera.copyPosition(dummyObject); camera.moveBackward(500); light.copyTransform(camera); camera.lookAt(dummyObject); } } }
-
LATCHO
-
David T
-
Paul Mayne
Search
Recommended Books
Speaking at FITC Toronto
Recent Posts
- Moving to johnlindquist.com
- AsyncCommand with Robotlegs, Signals, Flight, MinimalComps
- Search Widget – Robotlegs, Signals, Flight, Minimal Comps, Yahoo Astra
- FDT Super Awesome March Deal
- haXe Tutorial
- AS3 Signals Tutorial
- Preferred Video Tutorial Resolution?
- TweenMax – Tweening a timeline (Advanced Tweening)
- Robotlegs + Flight + Union Platform
- Back in the saddle
- Eclipse Theme Designer Preview
- RobotLegs Hello World Video Tutorial
- 10 Things Every Senior Flash Developer Should Know
- Efflex – 3D Effects for Flex
- MorphController – Mighty Morphing Papervision3D
Recent Comments
- Ocatarinabelachichix on about
- Rajiv on faq
- Rajiv on 3ds max texture baking for Papervision3D
- Anupam Biswas on Maya Texture Baking
- Anupam Biswas on Maya Texture Baking
- Arindam Mojumder on requests
- Arindam Mojumder on requests
- Arindam Mojumder on Full Screen Cube
- Arindam Mojumder on faq
- Mimosa123321 on requests
Categories
Archives
Preferred Video Tutorial Resolution
- 1024x768 (53%, 85 Votes)
- 1280x1024 (15%, 24 Votes)
- 1920x1080 (15%, 24 Votes)
- 800x600 (13%, 20 Votes)
- 480x320 (4%, 6 Votes)
- 640x480 (0%, 2 Votes)
Total Voters: 160


