论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

拥有重力的弹性小球(as3.0)

文章类别:Flash AS编程 | 发表日期:2008-10-6 17:44:24


搞AS游戏开发的朋友也许都听过Keith Peters大师,为我们缔造了那么多的经典算法,偶虽然不是游戏方向,但是还是特别喜欢!近些天拜读了《Making Things Move》的一部分,大师的经典杰作。数学与物理的伟大艺术体现,一直逃脱不出我的眼球!

来玩儿一个,做一个健身的小弹力球,在地球上有重力哦^^先看看:

 

下面是实现:

package {
import flash.display.Sprite;
import flash.events.Event;
import flash.display.StageScaleMode;
import flash.display.Stage;

public class TestBall extends Sprite {
private var ball:Ball;
private var spring:Number=0.1;
private var vx:Number=0;
private var vy:Number=0;
//这个是摩擦力啦!可以调节一下值看看变化
private var friction:Number=0.95;
//这个是重力,和我们现实生活中差不多
private var gravity:Number=5;
public function TestBall() {
this.stage.scaleMode=StageScaleMode.NO_SCALE;
//实例化一个小球(在库里的哦)
ball=new Ball();
this.addChild(ball);
this.addEventListener(Event.ENTER_FRAME,onEnterFrame);
}
private function onEnterFrame(event:Event):void {
//下面是核心算法,好好研究哦
var dx:Number=mouseX-ball.x;
var dy:Number=mouseY-ball.y;
var ax:Number=dx*spring;
var ay:Number=dy*spring;
vx+=ax;
vy+=ay;
vy+=gravity;
vx*=friction;
vy*=friction;
ball.x+=vx;
ball.y+=vy;
//绘制线条
this.graphics.clear();
this.graphics.lineStyle(1);
this.graphics.moveTo(ball.x,ball.y);
this.graphics.lineTo(mouseX,mouseY);
}
}
}

-*-本页地址:http://fck.name/node/138,转载请注明出处,谢谢!-*-

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058