Flash 游戏设计笔记:鼠标类游戏(1)
http://blog.csdn.net/hero82748274/archive/2009/02/11/3878304.aspx
Flash 游戏设计笔记:鼠标类游戏(2)
http://blog.csdn.net/hero82748274/archive/2009/02/16/3897058.aspx
Flash 游戏设计笔记:鼠标类游戏(3)
http://blog.csdn.net/hero82748274/archive/2009/02/17/3899443.aspx
一,旋转炮台制作
之前我曾经写了一些炮台的制作。这个炮台能够跟随鼠标旋转角度;他的原理很简单,使用Math.atan2(y,x)来求出对应的角度
如:(Fire 为场景上的Mc)
Fire.rotation=Math.atan2(mouseY-Fire.y, mouseX- Fire.x)*180/Math.PI;
Flash 制作旋转炮台:http://blog.csdn.net/hero82748274/archive/2008/11/04/3219431.aspx
由于rotation 是角度,所以要进行弧度转换角度单位
我们在场景上加入了一些名为Fire的影片剪辑
二、子弹的运行轨迹
在fla 文件里面创建一个名为Ball的子弹类,当我们鼠标按下去就产生一个对象,而这个对象根据一个角度和一个速度进行运行,由于速度是矢量可以分解两个不同轴的速度一个是 dx 一个是dy
dx=speed*cos(angle);
dy=speed*sin(angle);
物理上 h=dy*t;
s=dx*t ;在一定时间内运行一个在某一个角度的恒速的运动
Flash上的物理:
这里我们只是计算机出它所在的子弹初始化位置:
2.1子弹的速度分量:
简单一点来说:根据角度来计算出速度speed 的两个分量;
ball.vx=speed*Math.cos(angle*Math.PI/180);
ball.vy=speed*Math.sin(angle*Math.PI/180);
2.2子弹运行
当我们指定了子弹的初始角度和初始速度,按理想状态(不引入重力),它会以这个方向一直运动下去。
接下来,我们所做的事情是让子弹能够按照这个速度和方向运行;
ball.addEventListener(Event.ENTER_FRAME,BallMove); 使用Event.ENTER_FRAME 事件让其每一帧产生渲染。
这样 每一关帧就会产生一个像素的位移,子弹的坐标也发生了改变。
在物理当中 S=v*t; 位移=速度X时间
而在flash里面,其实已经隐藏了时间,代替为帧
物体.x+=Speed*T 而T就是隐藏的帧
物体.y+=Speed*T
2.3引入重力
由于子弹在空中运行的时候,它受重力和其他阻力,假设我们忽略子弹其他阻力,使用重力让子弹能够在重力的过程中
以一个抛物线的运动轨迹运行,所以在y轴的速度分量当中,我们要加上重力的加速度。假设为2.
这样就可以模拟出一个简单的重力效果
效果:
酷吧:嘿嘿
加上一些位图
代码清单:
累了明天再修改。