⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wheel.as

📁 Papervision3d的源码
💻 AS
字号:
/**
 * Paperskated3d - simple skateboard simulator in Papervision3d
 * 
 * @author Bartek Drozdz 
 * @version 1.0
 * 
 * Released under Creative Commons Attribution-Non-Commercial-Share Alike 3.0 License.
 */
package com.paperskate3d.skate {
	
	import com.everydayflash.pv3d.modifiers.Bend;
	import flash.display.Bitmap;
	import flash.geom.Point;
	import org.papervision3d.core.proto.MaterialObject3D;
	import org.papervision3d.materials.BitmapMaterial;
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.materials.WireframeMaterial;
	import org.papervision3d.objects.DisplayObject3D;

	public class Wheel extends DisplayObject3D {
		
		[Embed(source = '../../../../assets/wheel.png')]
		private var WheelFront:Class;
		private var frontMaterial:BitmapMaterial;
		
		[Embed(source='../../../../assets/wheel-side.png')]
		private var WheelSide:Class;
		private var sideMaterial:BitmapMaterial;
		
		private var wheelFront:Plane;
		private var wheelBack:Plane;
		private var wheelSide:Plane;
		
		private var rotSpeed:Number;
		private var friction:Number = .97;
		private var speedFactor:Number = 0.6;
		
		public function Wheel() {
			frontMaterial = new BitmapMaterial((new WheelFront() as Bitmap).bitmapData);
			sideMaterial = new BitmapMaterial((new WheelSide() as Bitmap).bitmapData);
			
			
			wheelFront = new Plane(frontMaterial, 30, 30, 1, 1);
			wheelFront.rotationY = 90;
			wheelFront.x = -8;
			addChild(wheelFront);
			
			wheelBack = new Plane(frontMaterial, 30, 30, 1, 1);
			wheelBack.rotationY = -90;
			wheelBack.x = 8;
			addChild(wheelBack);
			
			wheelSide = new Plane(sideMaterial, 16, 15 * Math.PI * 2, 1, 16);
			wheelSide.z = -15;
			var sideBend:Bend = new Bend(wheelSide);
			sideBend.quickBend(-2, .5);
			addChild(wheelSide);
		}
		
		public function move(speed:Number, situation:int):void {
			if (speed == 0) {
				return;
			} else if (situation != 0) {
				rotSpeed = speed * situation * speedFactor;
				rotationX += rotSpeed;
			} else {
				rotSpeed *= friction;
				rotationX += rotSpeed;
			} 
		}
		
		public function set hiquality(v:Boolean):void {
			frontMaterial.smooth = v;
			sideMaterial.smooth = v;
		}
	}
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -