Hello everybody,
I’m new to as3 but I really want to learn it. I wanted to make Asteroids but I have a problem with shooting the asteroids.
I’ve got two asteroids in the beginning of the game. If i shoot one of them(doesn’t matter wich one) i can’t shoot the other anymore. I really want to fix it but i can’t find the problem.
I hope anybody can help me, i will really appreciate it.
Timon Schneider
I think the problem is in here…
public function met2(e:Event):void
{
meteo.x += (randomx);
meteo.y += (randomy+1);
meteu.x -= (randomax);
meteu.y += (randomay+1);
if (meteo.meteoriet.hitTestObject(bull[x]))
{
bull[x].x = newx;
bull[x].y = newy;
removeChild(bull[x]);
removeChild(meteo);
}
if (meteu.meteoriet.hitTestObject(bull[x]))
{
bull[x].x = newx;
bull[x].y = newy;
removeChild(bull[x]);
removeChild(meteu);
}
}
But maybe it is something else
package
{
import flash.display.*;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
import flash.events.*;
import flash.geom.Point;
import flash.text.*;
import org.flashdevelop.utils.FlashConnect;
import flash.text.TextField;
public class Main extends Sprite
{
public var nieuwauto:autoclass;
public var meteo:mete;
public var meteu:mete;
public var meteo1:mete;
public var radius:mete;
public static var omg:bullet;
public var angleradian:Number;
private var angledegree:Number;
public var bull:Array;
public var met:Array;
public var speed3:Number = 20;
public var spex:Number = 0;
public var spey:Number = 0;
public var randomy:int = (Math.random() * 5);
public var randomx:int = (Math.random() * 5);
public var randomay:int = (Math.random() * 5);
public var randomax:int = (Math.random() * 5);
public var newx:Number;
public var newy:Number;
[Embed(source = 'ruimte.jpg')]
private var Background:Class;
private var Plaatje:Bitmap;
public function Main():void
{
Plaatje = (new Background) as Bitmap;
addChild(Plaatje);
Plaatje.x = -200;
nieuwauto = new autoclass();
addChild(nieuwauto);
stage.addEventListener(MouseEvent.MOUSE_DOWN, klik);
bull = new Array();
meteo = new mete(400, -50);
addChild(meteo);
meteu = new mete(400, -50);
addChild(meteu);
stage.addEventListener(Event.ENTER_FRAME, meteor);
stage.addEventListener(Event.ENTER_FRAME, met2);
met = new Array();
}
public function klik(E:MouseEvent):void
{
spex = (Math.cos(this.angleradian) * speed3) / (bull.length);
spey = (Math.sin(this.angleradian) * speed3) / (bull.length);
omg = new bullet(nieuwauto.car2.x, nieuwauto.car2.y);
omg.angleradian = Math.atan2(mouseY - nieuwauto.car2.y,mouseX -nieuwauto.car2.x);
bull.push(omg);
addChild(omg);
omg.addEventListener(Event.ENTER_FRAME, enterframe);
}
public function met2(e:Event):void
{
meteo.x += (randomx);
meteo.y += (randomy+1);
meteu.x -= (randomax);
meteu.y += (randomay+1);
if (meteo.meteoriet.hitTestObject(bull[x]))
{
bull[x].x = newx;
bull[x].y = newy;
removeChild(bull[x]);
removeChild(meteo);
}
if (meteu.meteoriet.hitTestObject(bull[x]))
{
bull[x].x = newx;
bull[x].y = newy;
removeChild(bull[x]);
removeChild(meteu);
}
}
public function enterframe(e:Event):void
{
angleradian = Math.atan2(mouseY - nieuwauto.car2.y, mouseX - nieuwauto.car2.x-10);
angledegree = angleradian * 180 / Math.PI;
for (var x:int = 0; x < bull.length; x++ )
{
bull[x].x += (Math.cos(bull[x].angleradian) * speed3) / (bull.length);
bull[x].y += (Math.sin(bull[x].angleradian) * speed3) / (bull.length);
if (this.bull[x].x < -10 || bull[x].x > 810 || bull[x].y < -10 || bull[x].y> 800)
{
removeEventListener(Event.ENTER_FRAME, enterframe);
}
}
}
public function meteor(e:Event):void
{
if (meteo.y > 700) { meteo.y = -50; }
if (meteo.x > 450) { meteo.x = -450; }
if (meteu.y > 700) { meteu.y = -50; }
if (meteu.x < -450) { meteu.x = 450;}
}
}
}