
14-10-2009, 15:25
|
|
|
|
חבר מתאריך: 06.06.04
הודעות: 89
|
|
space invaders - פונקציית collision לפגיעת היריות
היי, אני בונה משחק סגנון space invaders והסתבכתי עם הפקודה של הפגיעה של היריות
אני בונה בAS3, וכל פעם שאני מנסה ליצור פונקציה של collision הוא לא מזהה את הטיימרים של החייזרים ושל היריות.
אשמח אם תוכלו לעזור לי
קוד:
//movement of the ship
background.addEventListener(MouseEvent.MOUSE_MOVE, moveShooter)
function moveShooter(e:MouseEvent):void {
shooter.x = background.mouseX;
}
//these are the shooting missiles
background.addEventListener (MouseEvent.MOUSE_DOWN, missileShot)
function missileShot(e:MouseEvent):void {
var aMissile = new Missile();
addChild(aMissile);
aMissile.x = background.mouseX;
aMissile.y = 340;
//this part of the function gives the missile the order to move
var missileTimer = new Timer(1);
missileTimer.start();
missileTimer.addEventListener(TimerEvent.TIMER, missileMove);
function missileMove(e:TimerEvent):void {
aMissile.y -=1;
}
}
//generate a random number with top and bottom values
function generateRandom(top:Number, bottom:Number){
return Math.round(Math.random()* (top - bottom) + bottom);
}
//the alien invasion
var attackIntervals= 500;
function alienAttack(){
var frequencyTimer = new Timer(attackIntervals);
frequencyTimer.start();
frequencyTimer.addEventListener(TimerEvent.TIMER, insertAliens)
function insertAliens(e:TimerEvent):void {
var n = generateRandom(0, 2000);
//setting random time entry for aliens
var entryTimer = new Timer(n, 1);
entryTimer.start();
entryTimer.addEventListener(TimerEvent.TIMER, enterNewAlien);
function enterNewAlien(e:TimerEvent):void {
var anAlien = new Alien();
addChild(anAlien);
//setting random entry coordinates for aliens
anAlien.x = generateRandom(7, 538);
anAlien.y = generateRandom(-10, 0);
//movment of aliens towards player
var alienSpeed = 40;
var alienMovementTimer = new Timer(alienSpeed);
alienMovementTimer.start();
alienMovementTimer.addEventListener(TimerEvent.TIM ER, moveAlien);
function moveAlien(e:TimerEvent):void {
anAlien.y++;
}
}
}
}
alienAttack();
|