文档详情

使用OOP编程思想实现自由落体运动程序网络上有很多关于Flash模拟实现.docx

发布:2017-09-26约字共8页下载文档
文本预览下载声明
使用OOP编程思想实现自由落体运动程序网络上有很多关于Flash模拟实现重力场的教程,但是大多都是使用AS2写的。那么今天我们就使用AS3编程语言,基于面向对象编程思想来实现这个程序。首先,我们就不免俗的再老生常谈一下什么是面向对象思想。顾名思义,就是以对象为基础的思想,通俗点说就是“神马”都是“对象”。这里这个“对象”可不是找“对象”的那个“对象”,对象指的是要研究的事物,我们可以把所有要研究的事物当作对象,对象可以是具体的事物,也可以是抽象的原理、规则等。定义好了对象,那么我们研究对象的时候,应该从哪下手呢?我们在研究对象的时候,主要是从两个方面着手,对象的“状态”和对象的“行为”,如果应用到我们的程序里,就是类的属性和方法。关于AS3的类和对象我们就不再累赘了,有兴趣的同学可以自己找书籍或者加入我们的AS3基础班学习。接下来开始着手我们要做的那个重力程序吧!第一步:复习物理学上学习重力知识。翻开我们的物理课本,翻到物体的运动这章,找到运动学的基本公式:S = S0 + vt;每个时间点的路程等于之前的路程加上当前的速度乘以单位时间v = v0 + at;每个时间点的速度等于之前的速度加上当前的加速度乘以单位时间在程序里,把运动分解成x和y两个方向的运动。第二步:抽象。找出程序里要用到的对象,把他们的共性找出来。移动对象(IMovable):场景中可以移动的物体。在AS3中,程序通过改变显示元件的坐标实现物体的移动,所以必须把DisplayObject的x和y属性写进接口。 属性有: x:横坐标 y:纵坐标 vx:x方向上的速度 vy:y方向上的速度 ax:x方向上的加速度 ay:y方向上的加速度 width: 物体宽度 height:物体高度运动规则(IMovement):例如重力场 常量有: G:重力加速度 属性有: target: 规则应用的对象 range:移动边界 行为有: register:规则应用到物体上 unregister:从物体上撤销运动规则 第三步:定义接口。(这就是面向对象和面向过程的区别所在)接口IMovable,作为一个可以移动物体的接口。代码如下:// ./src/com/flash63/movement/IMovable.aspackage com.flash63.movement{ public interface IMovable{ // x方向上的位移 function get x():Number; function set x(value:Number):void; // y方向上的位移 function get y():Number; function set y(value:Number):void; // x方向上的速度 function get vx():Number; function set vx(value:Number):void; // y方向上的速度 function get vy():Number; function set vy(value:Number):void; // x方向上的加速度 function get ax():Number; function set ax(value:Number):void; // y方向上的加速度 function get ay():Number; function set ay(value:Number):void; // 物体的宽度 function get width():Number; function set width(value:Number):void; // 物体的高度 function get height():Number; function set height(value:Number):void; }}接口IMovement,作为一个运动规则的接口。代码如下:// ./src/com/flash63/movement/IMovement.aspackage com.flash63.movement{ public interface IMovement{ // 可移动的物体 function get target():IMovable; // 运动边界 function get range():Rectangle; function set range(value:Rectangle):void; // 把运动规则应用到物体上 function register(target:IMovable, range:Rectangle = null):void; // 停止运动规则的作用 function unregister():void; }}第四步:实现接口,定义基类。基类Movable,作为
显示全部
相似文档