`
kinglong
  • 浏览: 32742 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Flash算法-摆动算法

阅读更多
[代码]
package com.klstudio.algorithms {
	import flash.events.MouseEvent;
	import flash.events.Event;
	import flash.display.MovieClip;
	import flash.display.Sprite;

	/**
	 * 摆动算法
	 * @author Kinglong(kinglong@gmail.com)
	 * @since:2010-9-20
	 */
	[SWF(width = 550, height = 400, frameRate = 24, backgroundColor = 0x333333)]

	public class Swing extends Sprite {
		/**
		 * 显示元件
		 */
		private var _icon : MovieClip;

		/**
		 * xy弧度
		 */
		private var _xAngle : Number;
		private var _yAngle : Number;
		/**
		 * xy摆动的速度
		 */
		private var _xSpeed : Number;
		private var _ySpeed : Number;
		/**
		 * xy摆动的振幅
		 */
		private var _xRadius : Number;
		private var _yRadius : Number;

		private var _mod : int;

		public function Swing() {
			_icon = new jAcid_smiley();			
			addChild(_icon);		
			initParams();	
			stage.addEventListener(MouseEvent.CLICK, stageHandler);		
			addEventListener(Event.ENTER_FRAME, enterFrameHandler);
		}

		private function initParams(mod : int = 0) : void {
			_mod = mod;
			switch(_mod) {
				case 0:					
				case 1:
				case 2:
					_xAngle = _yAngle = 0;
					_xSpeed = _ySpeed = 0.05;
					_xRadius = _yRadius = 100;
					break;
				case 3:
					_xSpeed = 0.15;
					_ySpeed = 0.05;
					_xRadius = 100;
					_yRadius = 50;
					break;
			}
		}

		private function stageHandler(event : Event) : void {
			var mod : int = _mod + 1;
			initParams(mod % 4);
		}

		private function enterFrameHandler(event : Event) : void {
			switch(_mod) {
				case 0:
					_icon.x = 0;
					_icon.y = 100;
					_icon.x = 200 + Math.sin(_xAngle) * _xRadius;
					_xAngle += _xSpeed;
					break;				
				case 1:
					_icon.x = 100;
					_icon.y = 100;
					_icon.y = 200 + Math.cos(_yAngle) * _yRadius;					
					_yAngle += _ySpeed;	
					break;
				case 2:
				case 3:
					_icon.x = 0;
					_icon.y = 100;
					_icon.x = 200 + Math.sin(_xAngle) * _xRadius;					
					_icon.y = 200 + Math.cos(_yAngle) * _yRadius;
					_xAngle += _xSpeed;				
					_yAngle += _ySpeed;						
					break;				
			}
		}
	}
}
0
3
分享到:
评论

相关推荐

    BornGrass-flint粒子系统-完美的草丛flash 3d

    在BornGrass-flint系统中,这些粒子代表了草丛中的每一根草,通过精确的算法和优化,使得大量草叶的运动显得自然且流畅。 该系统的核心功能之一就是草丛的生长与摇摆效果。通过设置粒子的生命周期、出生率和死亡率...

    基于Flash 的摆钟

    通过关键帧和补间动画,可以让指针在特定时间内从一个位置平滑地移动到另一个位置,模拟真实的摆动效果。 4. **ActionScript编程**:Flash的内置脚本语言ActionScript用于添加交互性和逻辑控制。在这个项目中,...

    flash翻页效果源码

    它利用Flash的ActionScript语言,将每一页的翻动过程分解为一系列帧动画,再配合物理模拟算法,如重力、摩擦力等,使得页面在翻动时具有自然的摆动和飘落感。 Flash翻页效果源码通常包含以下几个核心组成部分: 1....

    Flash小游戏黄金矿工源码

    3. 物理模拟:虽然Flash不像物理引擎那样复杂,但游戏中的物体运动需要一定的模拟,如绳索的摆动、物体的重力下落等,这需要编写相应的算法。 4. 用户交互:玩家通过鼠标或键盘控制游戏,如决定何时释放绳索,何时...

    FLASH 网络 试衣间

    这些模型通过复杂的数学算法构建,包括多边形网格、纹理映射和光照效果,使虚拟试衣体验尽可能接近真实。用户可以调整模型的胸围、腰围、腿长等参数,以匹配自己的身材。 3. **动画技术**:Flash支持关键帧动画,...

    flash下雪效果

    当雪花接触到地面时,还需要处理堆积的算法,使得堆积的雪花呈现出层次感和体积感。 创建Flash下雪效果的关键步骤如下: 1. **雪花粒子系统**:首先,我们需要创建一个粒子系统,生成大量代表雪花的图形实例。这些...

    APE物理引擎

    - **碰撞检测**:APE引擎使用精确的算法来检测不同形状之间的碰撞,包括刚体与刚体、刚体与静态形状之间的碰撞,确保游戏中的对象能够准确地响应相互间的碰撞。 - **动力学模拟**:通过模拟真实世界中的重力、摩擦力...

    参考资料-基于STC单片机的仿生六足机器人设计.zip

    STC单片机通常具有内置的Flash存储器、EEPROM、RAM以及各种外围接口,如串行通信接口(SPI、UART)、I²C、PWM等。在六足机器人的控制系统中,STC单片机负责处理传感器数据,控制电机动作,以及执行行走算法,确保每...

    类人机器人手臂控制系统设计

    - 高达32KB的Flash程序存储器; - 2.5KB的RAM(数据/程序); - 544B双端口RAM (DARAM) 和2KB单端口RAM (SARAM)。 - **外部存储器扩展**:提供了192KB(16位)的扩展空间,包括64KB程序存储器、64KB数据存储器和...

    黄金矿工双人版-源码

    5. **物理模拟**:游戏中的物体运动遵循一定的物理规律,如重力、碰撞检测等,开发者可以通过ActionScript中的物理引擎或自定义算法来模拟。 6. **分数系统**:游戏得分的计算和显示,以及可能存在的等级系统,都...

    基于AT89S52单片机的智能循迹设计论文正文+外文资料.doc

    - **AT89S52简介**:AT89S52是一款高性能、低功耗的8位单片机,具有丰富的内部资源,包括8K Flash ROM、256B RAM、3个定时器/计数器等。 - **功能实现**:作为整个系统的控制核心,负责接收来自各种传感器的数据,并...

    as3 黄金矿工

    在黄金矿工游戏中,矿工的移动、绳索的摆动等都需要用到动画技术。 6. **游戏逻辑**:这涉及到游戏规则的实现,如矿工如何移动、何时停止、得分计算等。开发者需要根据游戏规则编写相应的函数和算法。 7. **资源...

    avr单片机与机器人

    这种机械手由五个独立的关节组成,每个关节对应一个自由度,分别控制手腕的旋转、前后摆动、左右摆动以及手指的开合。5自由度机械手装配图通常包含了所有部件的详细布局和连接方式,对于理解机械手的工作原理和进行...

    actinscript3国外教程,翻译成中文

    在AS3中,可以使用各种算法来实现这一点,例如轴对齐边界框(AABB)或分离轴定理(SAT)。有效的碰撞检测对于确保游戏逻辑的正确性至关重要,如角色移动、物体交互和得分计算。 三角函数在游戏开发中扮演着重要角色...

    as3.0鸟飞动画

    3. **翅膀摆动**:鸟飞动画的逼真度还取决于翅膀的摆动。这可以通过在时间轴上设置关键帧,或者在代码中动态改变翅膀的位置和旋转来实现。 4. **碰撞检测**:如果场景中有其他障碍物,还需要进行碰撞检测。在AS3.0...

    计算机期末考试模拟试题及答案.pdf

    5. **JPEG**:JPEG是一种广泛使用的位图图像格式,尤其适用于照片,它使用有损压缩算法,会降低图像质量但节省存储空间。 6. **量化**:在数字化过程中,量化是指将连续的模拟信号转换为离散的数字信号的过程,不是...

    APE物理引擎的中文说明文档

    4. **约束(Constraints)**: 约束可以限制刚体的运动,比如铰链约束(让物体像门一样摆动)、滑块约束(限制物体沿一轴移动)或固定约束(将物体固定在特定位置)。 5. **碰撞检测(Collision Detection)**: APE...

    音乐节拍器

    在传统的机械节拍器中,这通常通过一个摆动的小锤来实现,而在数字音乐节拍器,比如我们这里提到的Flash格式音乐节拍器中,这一功能由软件算法模拟实现,更便于调整和控制。 音乐节拍器的自定义参数包括拍子类型、...

    精品源码 黄金矿工as3版本demo源码.rar

    ActionScript 3是Adobe Flash Professional和Flex Builder等工具中使用的编程语言,主要用于创建交互式富媒体内容,包括网页游戏。AS3相比之前的版本,语法更严谨,性能更优,且支持面向对象编程。 在解压后的文件...

    基于C51单片机步数检测计步器无线蓝牙APP上传设计软硬件设计文件+毕业设计论文文档资料.zip

    采用ST公司的STC89C52单片机作为主控制器,STC89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程 Flash 存储器。该单片机功耗低、接口丰富,成本低廉,完全能满足本设计要求。 方案三 采用单片机芯片...

Global site tag (gtag.js) - Google Analytics