Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import flash.geom.Point;
- addEventListener(Event.ENTER_FRAME, update)
- addEventListener(MouseEvent.MOUSE_DOWN, down)
- addEventListener(MouseEvent.MOUSE_UP, up)
- var drive: Number = 0;
- function down(_) {
- if (drive > .05 && cooldown <= 0) {
- overdrive = true;
- left_off = bar.scaleY;
- }
- }
- function up(_) {
- overdrive = false;
- if (cooldown <= 0) {
- cooldown = 1;
- }
- }
- var energies: Array = [];
- var spawn_t: Number = 0;
- var overdrive: Boolean = false;
- var cooldown: Number = 0;
- var left_off: Number = 0;
- function update(_) {
- spawn_t++;
- heli.x = mouseX;
- heli.y = mouseY;
- heli.rot.rotation += 10;
- heli.rot.gotoAndStop(overdrive ? 2 : 1);
- heli.rot.scaleX += ((overdrive ? 1.2 : 1) - heli.rot.scaleX) * .2;
- heli.rot.scaleY = heli.rot.scaleX;
- if (overdrive) {
- if (drive < 0) {
- overdrive = false;
- cooldown = 1;
- } else {
- drive -= .01;
- }
- } else {
- if (cooldown > 0) {
- cooldown -= .07;
- } else {
- if (drive < 1) {
- drive += .005;
- }
- }
- bar_used.scaleY = left_off + (bar.scaleY - left_off) * (1 - cooldown);
- }
- bar.scaleY = drive;
- if (overdrive || (cooldown < 0 && drive < 1 && spawn_t % 4 == 0)) {
- var energy: Energy = new Energy();
- addChild(energy);
- energy.speed = 0;
- energy.vel = new Point();
- energy.rotation = Math.random() * 360;
- energies.push(energy);
- var move: Point = new Point(Math.random() * 100 - 50, Math.random() * 100 - 50);
- if (overdrive) {
- move.normalize(10);
- energy.vel.x = move.x;
- energy.vel.y = move.y;
- move.normalize(41);
- energy.nextFrame();
- } else {
- move.normalize(100);
- energy.alpha = 0;
- }
- energy.x = heli.x + move.x;
- energy.y = heli.y + move.y;
- energy.is_overdrive = overdrive;
- }
- for (var i: int = 0; i < energies.length; i++) {
- energy = energies[i];
- var vel: Point = energy.vel;
- if (energy.is_overdrive) {
- energy.alpha -= .05;
- vel.x *= .9;
- vel.y *= .9;
- } else {
- energy.alpha += .1;
- if (energy.speed < 30)
- energy.speed += 1;
- vel.x = heli.x - energy.x;
- vel.y = heli.y - energy.y;
- if (vel.length < 40) {
- energies.splice(i, 1);
- i--;
- removeChild(energy);
- continue;
- }
- vel.normalize(energy.speed);
- }
- if (energy.is_overdrive) {
- energy.x -= energy.vel.x * 2;
- energy.y -= energy.vel.y * 2;
- if (energy.alpha < 0) {
- energies.splice(i, 1);
- i--;
- removeChild(energy);
- continue;
- }
- } else {
- energy.x += energy.vel.x;
- energy.y += energy.vel.y;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement