本教程是教你用Flash制作可以随意启动和旋转的坦克(感觉就像玩遥控车一样,很有意思)。在文章中,你会学到AS中的一些基本的句子、定语、宾语和方法。让我们一起学习吧!
学习Flash,不学习ActionScript,是有限的。但是很多朋友都在抱怨AS太难学了。我想告诉你,AS一点也不难学。好吧,我们一起学习。
首先,创建一个600*450像素、黑色背景、40fps的新文件。
首先,实现转塔的旋转
1.按快捷键Ctrl+F8创建一个名为“炮塔”的影片剪辑元件。然后在其编辑场景中绘制一个炮塔,如1所示。注意,炮塔是“?”围绕着场景的中心。单词是旋转的。因此,在制作时,我们应该把炮塔圆顶的中心和“?”在组件场景中。单词重叠了。
2.按快捷键Ctrl+F8创建一个名为“Tank”的影片剪辑元素。然后在其编辑场景的“层1”中绘制坦克的主体。然后将“炮塔”组件从库中拖到“第二层”,如图2所示。
3.点击“层2”中的“炮塔”组件,按F9打开“动作”面板,输入以下代码:
复制代码
代码如下:
//当按下键盘上的键时执行
onClipEvent (keyDown) {
//如果按下“Z”键,转塔向左旋转6度
if (Key.getCode()==90) {
_ rotation-=6;
}
//如果按下“X”键,转塔向右旋转6度
if (Key.getCode()==88) {
_ rotation=6;
}
}
测试之后,你会发现转塔现在可以旋转了。因为我们通过_rotation属性来改变“炮塔”的角度。Key.getCode()返回最后一次按键的按键代码值。不过,如果读者想用其他键来控制炮塔的选择,也是可以的。用什么键,我们可以查一下键码——,键a-z对应的值是65-90。不管用什么钥匙,都要注意这样一个原则,——方便用户操作。
第二,实现坦克的运动。
返回场景1,打开库,将库中的“tank”组件拖动到场景中,然后单击“tank”组件,按F9打开“动作”面板,输入以下代码:
复制代码
代码如下:
onClipEvent (enterFrame) {
move函数通过改变坦克的坐标值来实现坦克的移动。
函数move() {
_y -=(Math.cos(数学。/180 *这个。_旋转))*速度;
_x=(Math.sin(Math。/180 *这个。_旋转))*速度;
}
//如果敲击键盘上的“”键或“”键,调用move函数。
if (Key.isDown(Key。向上)){
move();
}
if (Key.isDown(Key。向下)){
move();
}
//如果按键盘上的“”键或“”键,让坦克旋转
if (Key.isDown(Key。左)){
_ rotation-=3;
}
if (Key.isDown(Key。右)){
_ rotation=3;
}
//改变坦克的速度偏移,使坦克移动时有加速度。
if (Key.isDown(Key。UP)!(Key.isDown(Key。向下))速度-3档速度3) {
速度=0.1;
}
if (Key.isDown(Key。下来)!(Key.isDown(Key。向上))速度-3档速度3) {
速度-=0.1;
}
如果((speed0.1)(!Key.isDown(Key。UP))(!Key.isDown(Key。向下))){
move();
速度-=0.05;
}
如果((速度-0.1)(!Key.isDown(Key。UP))(!Key.isDown(Key。向下))){
move();
速度=0.05;
}
//如果同时按下两个相反方向的键,坦克就不会一直动。
if ((Key.isDown(Key。UP)) (Key.isDown(Key。向下))){
速度/=1.1;
if((速度-0.1)(速度0.1)) {
速度=0;
}
}
//使坦克始终在场景中移动
如果(_x=0) {
_ x=600
} else if (_x=600) {
_ x=0;
}
if (_y=0) {
_ y=450
} else if (_y=450) {
_ y=0;
}
}
上面一大段代码,恐怕读者消化不了。现在我将详细地谈论这些代码。
1.你可以发现程序中的很多地方都使用了move函数。如果我们直接使用move函数中的代码,整个程序会变得很冗长。而且程序维护也不方便。
2.当物体运动时,总有一个恒定的加速度。当坦克在移动和改变方向时,改变的角度是不断变化的。密码:
_y -=(Math.cos(数学。/180 *这个。_旋转))*速度;
_x=(Math.sin(Math。/180 *这个。_旋转))*速度;
意识到这种变化。带“-=”的y轴坐标与Flash坐标系的设置有关。因为,在主场景中,如果你向上移动组件,你必须减小y的值。
3.三号。当按下“()”中指定的键时,Key.isDown()方法返回true值。我们通常用这种方法来检查“Shift键”和“Tab键”是否被按下。
现在,测试一下,你会发现它非常有趣。
以上关于制作可以随意启动和用Flash旋转的坦克的教程,希望大家喜欢!