问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

flash 自由移动 碰撞 弹开

发布网友 发布时间:2023-07-04 20:48

我来回答

2个回答

热心网友 时间:2024-12-02 17:29

//AS3.0
//
package{
import flash.display.Sprite;
import flash.events.Event;
//定义类
public class MoveBalls extends Sprite {
//构造函数
public function MoveBalls() {
//初始化舞台
init();
}
//构建初始化函数
private function init() {
//创建一个圆形区域,小球将在此区域运动
var sp:Sprite=new Sprite();
addChild(sp);
//定义圆形区域位置和形状
sp.x=stage.stageWidth/2;
sp.y=stage.stageHeight/2;
sp.graphics.beginFill(0xffffff);
sp.graphics.drawCircle(0,0,150);
sp.graphics.endFill();
//使用循环添加10个小球
for (var i:int=0; i<10; i++) {
//定义初始化坐标
var xx:Number=MathR.Random(90)-30
var yy:Number=MathR.Random(90)-30
//定义坐标向量
var v0=new V2D(xx,yy);
//定义初始化速度
var vx:Number=MathR.Random(30)-15
var vy:Number=MathR.Random(20)-10
//定义速度向量
var v1=new V2D(vx,vy);
var ball:Sprite=Ball();
sp.addChild(ball);
//初始化运动小球
initball(ball,v0,v1);
}
}
//定义运动小球动画效果实现函数
private function initball(ball:Sprite,v0:V2D,v1:V2D) {
//注册帧循环事件函数到舞台
stage.addEventListener(Event.ENTER_FRAME,MoveBall);
//运动小球事件处理函数
function MoveBall(evt:Event):void {
//坐标向量加上速度向量,小球运动
v0.plus(v1);
//改变小球位置
render(ball,v0);
//若超过圆形区域范围
if (v0.length()>150) {
//设置位移向量长度为圆形半径
v0.setlength(150);
//改变小球位置
render(ball,v0);
//速度反向
v1.negate();
//速度向量方向角度
var ang1:Number=v1.getangle();
//位移向量方向角度
var ang2:Number=v0.getangle();
//速度方向旋转,ang1-ang2为速度方向和位移方向的夹角,旋转夹角的2倍,实现反射
v1.rotate(2*(ang1-ang2));
}
}
//改变小球位置方法
function render(a:Sprite,v:V2D) {
a.x=v._x;
a.y=v._y;
}
}
//创建小球
private function Ball():Sprite {
var ball:Sprite=new Sprite;
ball.graphics.beginFill(0xFF0000);
ball.graphics.drawCircle(0,0,5);
ball.graphics.endFill();
return ball;
}
}
}
import flash display Sprite;
class V2D {
//定义两个属性_x和_y
private var _x:Number;
private var _y:Number;
//构造函数
public function V2D(x:Number=0,y:Number=0) {
this._x=x;
this._y=y;
}
}
class MathR{
public function MathR(){}
//取得一个大于0小于n的整数
public static function Random(n:uint):uint{
return Math.round((n-1)*Math.random());
}
}
}

热心网友 时间:2024-12-02 17:29

要想模拟零重力的自由碰撞,请使用物理引擎,比如BOX2D,Nape  ,物体的重力,角速度,扭矩,线速度等,都可以近乎完美的模拟。下面送你一个你要求的源文件,使BOX2D引擎,自己慢慢研究,如果看不懂,请学习相关BOX2D教程。如Box2DForFlashGame(中文版).pdf  Box2DFlash.pdf

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
win7窗口淡入淡出慢 iPhone 小技巧:如何将 Safari 浏览器中的网页添加到桌面? 锰粉是什么颜色的金属 铁精粉的常见颜色是什么 烟花爆竹中的金属粉末如何使其呈现绚丽色彩? 金粉有哪些种类 灰土每层回填最大厚度 灰土基础简史 如何让一个喜欢你的女孩讨厌你! 西环里新区基本资料 actionscript代码解释,请各位指教 电脑死机,重启后总是出现弹窗 打造蜜桃臀改善臀部凹陷 求Tora Tora Gold Vol.69Sweet Honey 绫瀬はるな(夕鹤)这部片子... 求线索:博迪大厦谋杀案游戏百度云资源 公寓大楼里的谋杀案 第一季全集资源在哪看 皮特搭讪女郎,是离婚后不甘寂寞的表现? 《她想要月亮》书摘与感悟 牛头人之魔王进化小说txt全集免费下载 脚上长了两个黄色水泡 关于春天现代诗 《春日捕蝶》的故事作文100字 ...她为了救他男朋友去给男主当情人那个男朋友就少坐了几年的牢... 插画风格图标-图标类型和风格总结 江山美人OL怎么充值啊? 球鞋插画-得物App上线的回力联名款球鞋好看吗,设计上有什么亮点?_百度... 江山美人OL哪个职业最抗打啊?剑客?侠客啊? 江山美人OL里面五行系统是给详细的说下啊? 江山美人OL的任务好接么? 韩国情书第一季中,junjun和韩佳人约会时,junjun放录音机给韩佳人听的... 胖子适合做什么工作? 巴西龟吃了3粒珍珠能消化吗,会不会堵死 《妻子》开录,陈乔恩婚后首秀,苗苗加入,这一季的相处模式有何不同... 天然珍珠上的白斑怎么去掉 谭桉淇的个人资料 珍珠粉是消炎的吗 金枝欲孽的幕后花絮 你好,请问,好记星M16开机一直停在开机画面,不能进入系统,怎么解决?谢谢... 用英语怎么说张淇淇 从当初的冷清秋到渐渐退出娱乐圈,董洁是如何一步步将一手好牌打烂... 求刘诗诗高清写真套图 4k是什么格式? 漫步者吗M16调好的声音每次开机就恢复默认了 董洁带儿子出席活动,儿子的模样长得像妈妈还是爸爸? 江南京华梦的幕后花絮 岁月风云的幕后花絮 秃发的男人是什么原因 婚姻中如何对待对方的缺点 结婚后发现老婆有很多缺点,该怎么办? 你老婆的缺点在你眼里是什么样的?