Исходники и листинги ::: Action Script ::: actionscript суперпаратрупера

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
  // инициализация переменных
  _root.counter = 0;
  _root.ptLeft =0;
  _root.bulletCounter = 0;
  _root.bulletsLeft = 0;
  _root.shootSpeed = 10;
  _root.choperSpeed = 10;
  _root.respawn = true;
  _root.generated = true;
  _root.ptOut = true;
  //
  // генератор бойца
  function respawnPt() {
  _root.ptLeft++;
  duplicateMovieClip('pt', 'pt'+_root.counter, _root.getNextHighestDepth());
  _root['pt'+_root.counter]._x = _root.posX;
  _root['pt'+_root.counter]._y = 30;
  _root.respawn = false;
  _root.ptOut = false;
  }
  //полет вертолета
  function choperfly() {
  // проверяем, вылетел ли за пределы экрана, иначе двигаем вперед; скорость постоянная
  if (_root.choper._x<600) {
  _root.choper._x += _root.choperSpeed;
  } else {
  // иначе отбрасываем назад (пока он не убиваемый) и разрешаем выкинуть еще бойца
  _root.choper._x = -120;
  _root.generated = true;
  _root.ptOut = true;
  _root.respawn = true;
  }
  // если вертолет долетел до позиции выброски
  if ((_root.choper._x>_root.posX) and (_root.ptOut)) {
  _root.counter++;
  _root.respawnPt();
  _root.ptOut = false;
  }
  }
  //генератор позиции выброски
  function rand():Number {
  var randomNum:Number = Math.round(Math.random()*(50)*10);
  _root.generated = false;
  return randomNum;
  }
  //движение пушки
  function gAngle() {
  if (_root.xmouse>=_root.tank._x) {
  mouseX = _root._xmouse-_root.tank._x;
  } else {
  mouseX = _root.tank._x-_root._xmouse;
  }
  mouseY = 400-_root._ymouse;
  _root.gunAngle = Math.abs((Math.atan(mouseX/mouseY)-1.5707963267949)*60);
  return _root.gunAngle;
  }
  //
  //
  //основная движуха (позиция выброса, вертолет, бойцы, снаряды, столкновения)
  _root.onEnterFrame = function() {
  // если флаг торчит - генерим число и отправляем вертолету, иначе пусть так летит
  if (_root.generated) {
  _root.posX = _root.rand();
  }
  _root.choperfly();
  // двигаем всех выброшенных десантников (спускаем вниз)
  for (i=0; i<=_root.counter; i++) {
  if (_root['pt'+i]._y<=350) {
  _root['pt'+i]._y += 3;
  } else {
  // боец приземлился, парашют убираем
  _root['pt'+i].para._alpha=0;
  }
  }
  // двигаем все снаряды
  for (i=(_root.bulletCounter-_root.bulletsLeft); i<=_root.bulletCounter; i++) {
  // двигаем снаряд, если он - в пределах экрана, иначе удаляем его, определяя, сколько на экране всего снарядов
  if ((_root['bt'+i]._y>=0) and (_root['bt'+i]._y<=400) and (_root['bt'+i]._x<=550) and (_root['bt'+i]._x>=0)) {
  _root['bt'+i]._y -= _root.shootSpeed*Math.sin(this['btAngle'+i]*Math.PI/180);
  _root['bt'+i]._x += _root.shootSpeed*Math.cos(this['btAngle'+i]*Math.PI/180);
  } else {
  _root['bt'+i].removeMovieClip();
  _root.bulletsLeft--;
  }
  // проверка на попадание в бойца
  for (j=0; j<=_root.counter; j++) {
  if (_root['bt'+i].hitTest(_root['pt'+j].trooper)) {
  _root['pt'+j].pt_dead._alpha=100;
  _root['pt'+j].trooper._alpha=0;
  _root['pt'+j].pt_dead.play();
  _root['bt'+i].removeMovieClip();
  _root.bulletsLeft--;
  }
  if (_root.tank.hitTest(_root['pt'+j].trooper)) {
  _root['pt'+j].pt_dead._alpha=100;
  _root['pt'+j].trooper._alpha=0;
  _root['pt'+j].pt_dead.play();
  _root.ptLeft--;
  }
  }
  }
  // ворочаем орудие
  _root.tank.gun._rotation = -_root.gAngle();
  };
  //
  //
  // выстрел (генерация патрона и его направления)
  _root.onMouseDown = function() {
  _root.bulletsLeft++;
  _root.bulletCounter++;
  duplicateMovieClip('bt', 'bt'+_root.bulletCounter, _root.getNextHighestDepth());
  _root['btAngle'+_root.bulletCounter] = _root.gunAngle;
  _root['bt'+_root.bulletCounter]._rotation = 180-this['btAngle'+_root.bulletCounter];
  _root['bt'+_root.bulletCounter]._x = _root.tank._x+_root.tank.gun._width*Math.cos(_root['btAngle'+_root.bulletCounter]*Math.PI/180);
  _root['bt'+_root.bulletCounter]._y = _root.tank._y-_root.tank.gun._width*Math.sin(_root['btAngle'+_root.bulletCounter]*Math.PI/180);
  };
<<< Предыдущая работа

Вернуться в галерею исходников
actionscript суперпаратрупера
Автор: reza
Город: makondo
Дата: 24.05.2006  20:30
Комментариев: 2
Просмотров: 605
Оценка: 7 (2|2|2|0|1) [1]

Вернуться на главную
Авторский комментарий к работе: исходник основы игры "paratrooper", кою можно лицезреть в разделе флэш-анимации
Вы не можете оценивать

КОММЕНТАРИИ К РАБОТЕ:
cil* ::: комментарий от 29.11.2007 | 19:10
Сил Неофит (ур.7)
Очки: 1117
Город: с. Михайловка
Тв. работ: 23
Рег: 10.12.2006 (1744)
Молодчина! Скрипт сам писал?(во время создания Flash-ки) или с помощью самоучителя, примеров?


--------------------
Делай, что должен, и будь, что будет.
Pashtet* ::: комментарий от 07.11.2006 | 11:18
Pashtet Перспективный (ур.8)
Очки: 1511
Город: Ноябрьск
Тв. работ: 18
Рег: 24.10.2006 (1202)
Нищтяк!



[Posted by 88.205.231.21 via http://webwarper.net/ru This is added while posting a message to avoid misuse.

Try: http://webwarper.net/webwarper.exe Example of viewing: http://webwarper.net/ww/~av/club.itdrom.com/gallery/gal_source/ ]