经典坦克大战4399(经典坦克flash版)

2023-08-17 13:37:47 来源: 互联网

0 浏览 评论0  我来说两句

1、学习Flash,而不是ActionScript,是有局限的。但是很多朋友都在抱怨AS太难学了。告诉你,AS一点也不难学。好吧,我们一起学习。

2、首先,创建一个600*450像素的新文件,黑色背景为40fps。

3、首先,实现转塔的旋转


【资料图】

4、1.按Ctrl+F8创建一个名为“炮塔”的电影剪辑元件。然后在其编辑场景中绘制一个炮塔,如1所示。请注意,炮塔位于场景的中心。单词是旋转的。

5、因此,当你制作它的时候,你应该把炮塔圆顶的中心和“?”在组件场景中,单词重叠。

6、2.按Ctrl+F8创建一个名为“Tank”的影片剪辑元件。然后在编辑场景的“第一层”绘制坦克的车身。然后将“炮塔”组件从库中拖到“第二层”,如图2所示。

7、3.单击第2层中的炮塔组件,按F9打开动作面板,并输入以下代码:

8、复制代码

9、代码如下:

10、//当键盘上的某个键被按下时执行。

11、onClipEvent (keyDown) {

12、//如果按下“Z”键,转塔向左旋转6度。

13、if (Key.getCode()==90) {

14、_rotation -=6;

15、}

16、//如果按下“X”键,转塔向右旋转6度。

17、if (Key.getCode()==88) {

18、_rotation +=6;

19、}

20、}

21、测试一下,你会发现现在炮塔可以转动了。因为我们通过_rotation属性来改变“炮塔”的角度。Key.getCode()返回最后一次按键的按键代码值。然而,

22、如果读者想用其他键控制炮塔选择,也是可以的。对于具体使用的钥匙,我们可以查看钥匙——的代码,钥匙a-z对应的值是65-90。不管用什么键,都要注意——方便用户操作的原则。

23、第二,实现坦克的运动

24、返回场景1,打开库,将库中的“tank”组件拖动到场景中,然后单击“tank”组件,按F9打开“动作”面板,并输入以下代码:

25、复制代码

26、代码如下:

27、onClipEvent (enterFrame) {

28、move函数通过改变坦克的坐标值来移动坦克。

29、function move() {

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

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

32、}

33、//如果你按了键盘上的“写”键或“左”键,调用move函数。

34、if (Key.isDown(Key.UP)) {

35、move();

36、}

37、if (Key.isDown(Key.DOWN)) {

38、move();

39、}

40、//如果敲击键盘上的“”键或“”键,让坦克旋转。

41、if (Key.isDown(Key.LEFT)) {

42、_rotation -=3;

43、}

44、if (Key.isDown(Key.RIGHT)) {

45、_rotation +=3;

46、}

47、//改变坦克的速度偏移量,使坦克运动时有一个加速度

48、if (Key.isDown(Key.UP) !(Key.isDown(Key.DOWN)) speed-3 speed3) {

49、speed +=0.1;

50、}

51、if (Key.isDown(Key.DOWN) !(Key.isDown(Key.UP)) speed-3 speed3) {

52、speed -=0.1;

53、}

54、if ((speed0.1) (!Key.isDown(Key.UP)) (!Key.isDown(Key.DOWN))) {

55、move();

56、speed -=0.05;

57、}

58、if ((speed-0.1) (!Key.isDown(Key.UP)) (!Key.isDown(Key.DOWN))) {

59、move();

60、speed +=0.05;

61、}

62、//如果同时按住两个方向相反的键,坦克不会一直移动

63、if ((Key.isDown(Key.UP)) (Key.isDown(Key.DOWN))) {

64、speed /=1.1;

65、if ((speed-0.1) (speed0.1)) {

66、speed=0;

67、}

68、}

69、//使坦克始终在场景中移动

70、if (_x=0) {

71、_x=600;

72、} else if (_x=600) {

73、_x=0;

74、}

75、if (_y=0) {

76、_y=450;

77、} else if (_y=450) {

78、_y=0;

79、}

80、}

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

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

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

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

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

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

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

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

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

本文到此结束,希望对大家有所帮助。

标签:

[责任编辑:]

最近更新