Flash制作可随意开动并能旋转的坦克

所属分类: 媒体动画 / Flash教程 阅读数: 46
收藏 0 赞 0 分享

  这篇教程是教大家利用Flash制作可随意开动并能旋转的坦克(感觉就象在玩遥控汽车,很有意思),在文章中,我们将学到AS中一些基本的语句、属性、对象和方法。 一起来学习吧!

  学习Flash,不学ActionScript,所做的事情是有限的。但很多朋友都在抱怨AS太难学了。笔者要告诉大家,其实AS一点也不难学。好,下面我们就一起来学习吧。首先,新建一个文件,600*450像素,背景为黑色,40fps。

  一、实现炮塔的旋转

  1.按快捷键Ctrl+F8创建一个名为“炮塔”的影片剪辑元件。接着在其编辑场景中绘制一个炮塔,如图1所示。注意,炮塔是围绕场景中央的“╬”字进行旋转的。所以大家在制作的时候要把炮塔圆盖的中心和元件场景中的“╬”字重叠在一起。

Flash游戏开发实例制作旋转坦克篇   三联

  2.按快捷键Ctrl+F8创建一个名为“坦克”的影片剪辑元件。接着在其编辑场景的“图层 1”中绘制一个坦克的主体。接着再从库中把“炮塔”元件拖拽到“图层2”中,如图2所示。

Flash游戏开发实例制作旋转坦克篇

  3.点选“图层2”中的“炮塔”元件,按F9打开“动作”面板,输入以下代码:


复制代码
代码如下:
  // 键盘上有键按下时执行
onClipEvent (keyDown) {</p> // 如果按下“z”键,炮塔向左旋转6度
if (Key.getCode() == 90) {
_rotation -= 6;
}
// 如果按下“x”键,炮塔向右旋转6度
if (Key.getCode() == 88) {
_rotation += 6;
}
}

  测试一下,你会发现炮塔现在可以旋转了。因为我们通过_rotation属性来改变“炮塔”的角度。Key.getCode()返回按下的最后一个键的键控代码值。不过,如果读者要用其它键来控制炮塔的选择也是可以的。具体要用什么键,我们可以查查该键的代码——字母键a-z对应的数值是65-90。无论你使用什么键,都要注意这样一个原则——方便用户操作。

  二、实现坦克的运动

  回到场景1,打开库,把库中的“坦克”元件拖入场景中,接着点选“坦克”元件,按F9打开“动作”面板,输入如下代码:

  

复制代码
代码如下:
onClipEvent (enterFrame) {
// move函数通过改变坦克的坐标值实现坦克的移动
function move() {
_y -= (Math.cos(Math.PI/180*this._rotation))*speed;
_x += (Math.sin(Math.PI/180*this._rotation))*speed;
}
// 如果敲击键盘上的“↑”键或“↓”键,就调用move函数
if (Key.isDown(Key.UP)) {
move();
}
if (Key.isDown(Key.DOWN)) {
move();
}
// 如果敲击键盘上的“←”键或“→”键,就让坦克旋转
if (Key.isDown(Key.LEFT)) {
_rotation -= 3;
}
if (Key.isDown(Key.RIGHT)) {
_rotation += 3;</p> <p>}</p> <p>// 改变坦克的速度偏移量,使坦克运动时有一个加速度</p> if (Key.isDown(Key.UP) && !(Key.isDown(Key.DOWN)) && speed>-3 && speed<3) {
speed += 0.1;
}
if (Key.isDown(Key.DOWN) && !(Key.isDown(Key.UP)) && speed>-3 && speed<3) {
speed -= 0.1;
}
if ((speed>0.1) && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN))) {
move();
speed -= 0.05;
}
if ((speed<-0.1) && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN))) {
move();
speed += 0.05;
}
// 如果同时按住两个方向相反的键,坦克不会一直移动
if ((Key.isDown(Key.UP)) && (Key.isDown(Key.DOWN))) {
speed /= 1.1;
if ((speed>-0.1) && (speed<0.1)) {
speed = 0;
}
}
// 使坦克始终在场景中移动
if (_x<=0) {
_x = 600;
} else if (_x>=600) {
_x = 0;
}
if (_y<=0) {
 _y = 450; <p></p> } else if (_y>=450) {
_y = 0;
 }
}

  上面的一大段代码,读者一下子恐怕也消化不了。现在笔者就来细细地讲讲这些代码。

  1.大家可以发现,程序中很多地方用到了move函数,如果我们直接使用move函数里的代码,将会使整个程序变得冗长。而且,这样也不方便对程序地维护。

  2.物体在运动的时候,总有一个不断变化的加速度。当坦克在运动在改变运动方向的时候,所改变的角度是不断变化的。通过代码:

  _y -= (Math.cos(Math.PI/180*this._rotation))*speed;

  _x += (Math.sin(Math.PI/180*this._rotation))*speed;

  实现这一变化。其中y轴坐标用“-=”是和Flash坐标系设定有关的。因为,在主场景中,向上移动元件,就要减小y值。

  3.Key.isDown()方法在按下“()”中指定的键时返回true值。我们通常用该方法检测是否按下“Shift键”、“Tab键”。

  现在测试一下,你一定会觉得很有意思的。

  以上Flash制作可随意开动并能旋转的坦克教程,希望大家喜欢!

更多精彩内容其他人还在看

Flash cs3绘制人物高级行走动画教程

本教程向大家介绍Flash cs3绘制人物高级行走动画效果,教程难度不是很大,绘制方法及过程介绍的也非常详细,教程很实用,转发过来,希望大家喜欢
收藏 0 赞 0 分享

Flash CS4来制作漂亮的气泡动画教程

本教程向脚本之家的朋友介绍用Flash CS4来制作漂亮的气泡动画,制作出来气泡真的很好看,制作效果是采用代码形式实现,觉得很不错,转发过来,感兴趣的朋友可以一起来学习
收藏 0 赞 0 分享

flash基础教程:帧、关键帧、空白帧概念及区别介绍

动画的产生是帧来实现的,那什么是帧?帧、关键帧和空白帧之间又有什么区别?本文就为大家介绍一下三者之间的关系
收藏 0 赞 0 分享

Flash教程:动画背景的绘制方法之透视篇(给新手)

Flash动画在网络上的广泛传播,已经成为上网一族喜闻乐见的一种艺术形式。动画背景的绘制方法有很多,也有很多表现方法。这里将结合透视学的基础知识向大家简单的介绍一下动画背景的绘制。
收藏 0 赞 0 分享

Flash AS入门教程:Flash AS3.0制作有年份有日期的时钟

本教程是向大家介绍利用Flash AS3.0制作有年份有日期的时钟,虽然制作时钟老套了点,但它确可以较全面地应用到时间日期和间隔等知识,仍不失为较好的入门练习,转发给大家,希望对大家有所帮助
收藏 0 赞 0 分享

Flash相册制作大师具体该如何使用 Flash相册制作大师使用教程

在本文中我们将会看到的是Flash相册制作大师的具体使用的方法
收藏 0 赞 0 分享

flash基础教程:混色器面板图文介绍

混色器面板是Flash中用于色彩处理的一个重要面板,熟练地使用该面板,可以帮助用户快速地完成色彩的填充,编辑出色彩丰富的图形。本教程为大家详细介绍一下混色器面板,希望对大家有所帮助
收藏 0 赞 0 分享

25个绝对让你应接不暇的Flash网站创意

在Web设计过程中,运用成熟的Flash技术可以把你任意想到的idea表现到产品页面中。这里为你整理发现了25个绝对让你应接不暇的 Flash网站创意,更好地体现网站的互动应用,同时可以让你大饱眼福,一起来欣赏吧
收藏 0 赞 0 分享

教你用Flash制作非常酷的二进制时钟动画

今天在这个教程中我们将学习用Flash做一个不同寻常的,但非常酷的时钟:一个二进制时钟,中间用到了代码,但介绍地很详细,相信很值得大家学习
收藏 0 赞 0 分享

Flash动画特效制作技巧:制作超酷的文字炸开动画效果

本教程向大家介绍Flash动画特效制作技巧,本实例是制作文字炸开的动画效果,制作效果非常酷,制作过程也比较简单,喜欢的朋友可以过来学习一下这种制作方法
收藏 0 赞 0 分享
查看更多