Исходники и листинги ::: Action Script ::: actionscript суперпаратрупера
|
|
|
| // инициализация переменных | |
duplicateMovieClip('pt', 'pt'+_root.counter, _root.getNextHighestDepth()); | |
_root['pt'+_root.counter]._x = _root.posX; | |
_root['pt'+_root.counter]._y = 30; | |
// проверяем, вылетел ли за пределы экрана, иначе двигаем вперед; скорость постоянная | |
if (_root.choper._x<600) { | |
_root.choper._x += _root.choperSpeed; | |
// иначе отбрасываем назад (пока он не убиваемый) и разрешаем выкинуть еще бойца | |
// если вертолет долетел до позиции выброски | |
if ((_root.choper._x>_root.posX) and (_root.ptOut)) { | |
//генератор позиции выброски | |
var randomNum:Number = Math.round(Math.random()*(50)*10); | |
if (_root.xmouse>=_root.tank._x) { | |
mouseX = _root._xmouse-_root.tank._x; | |
mouseX = _root.tank._x-_root._xmouse; | |
mouseY = 400-_root._ymouse; | |
_root.gunAngle = Math.abs((Math.atan(mouseX/mouseY)-1.5707963267949)*60); | |
//основная движуха (позиция выброса, вертолет, бойцы, снаряды, столкновения) | |
_root.onEnterFrame = function() { | |
// если флаг торчит - генерим число и отправляем вертолету, иначе пусть так летит | |
_root.posX = _root.rand(); | |
// двигаем всех выброшенных десантников (спускаем вниз) | |
for (i=0; i<=_root.counter; i++) { | |
if (_root['pt'+i]._y<=350) { | |
// боец приземлился, парашют убираем | |
_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); | |
_root['bt'+i].removeMovieClip(); | |
// проверка на попадание в бойца | |
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(); | |
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.tank.gun._rotation = -_root.gAngle(); | |
// выстрел (генерация патрона и его направления) | |
_root.onMouseDown = function() { | |
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); | |
|
|
|
|
Авторский комментарий к работе: исходник основы игры "paratrooper", кою можно лицезреть в разделе флэш-анимации
|
|
Вы не можете оценивать |
КОММЕНТАРИИ К РАБОТЕ:
|
|
|
|
|
| cil* ::: комментарий от 29.11.2007 | 19:10
|
|
Неофит (ур.7)
Очки: 1117
Город: с. Михайловка
Тв. работ: 23
Рег: 10.12.2006 (1744) |
Молодчина! Скрипт сам писал?(во время создания Flash-ки) или с помощью самоучителя, примеров?
--------------------
Делай, что должен, и будь, что будет.
|
|
| Pashtet* ::: комментарий от 07.11.2006 | 11:18
|
|
Перспективный (ур.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/ ]
|
|
|