Преглед на урок

"Space invaders" Част 4 - Flash игра

"Space invaders" Част 4 - Flash игра




Във връзка със зачестилите проблеми по създаването на играта от потребителите, побликувам и Четвърта част на уроците за играта "Space Invaders"! Проблемите са свързани с кодовете, поради разцепването на сюжета на части. След което, поради модернизиране на кодовете, се получава разминаване, което способства проблеми в крайния резултат на играта. Извинявам се за създадените неудобства!

"Action-Script-ове на всички фигури в играта!"

1. Самият кораб, който ние управляваме:

[color=Blue]onClipEvent(load){

moveSpeed=10;
_root.laser._visible=false;
laserCounter=1;
scrollx=_root.mainGround.ground._width/3;
scrollStart=false;

}




onClipEvent (enterFrame) {

if (Key.isDown(Key.CONTROL)) {

laserCounter++;
_root.laser.duplicateMovieClip( "laser"+laserCounter, laserCounter );
_root["laser"+laserCounter]._visible=true;
}


if (Key.isDown(Key.RIGHT)) {
if (this._x<scrollx){
this._x+=moveSpeed;

} else {
scrollStart=true;
}

} else if (Key.isDown(Key.LEFT)) {
this._x-=moveSpeed;
}

if (Key.isDown(Key.DOWN)) {
this._y+=moveSpeed;
} else if (Key.isDown(Key.UP)) {
this._y-=moveSpeed;
}

}


onClipEvent (keyUp) {
if (Key.getCode() == Key.RIGHT) {
scrollStart=false;
}
}


2. Лазерният лъч (Патронът, ракетата и т.н.):

[color=Blue]
onClipEvent (load) {

laserMoveSpeed=20;
this._x=_root.spaceship._x+90;
this._y=_root.spaceship._y;

}

onClipEvent (enterFrame) {
if (this._name<>"laser"){
this._x+=laserMoveSpeed;
if (this._x>600){
this.removeMovieClip();
}

for (i=1; i<=_root.numEnemy; i++){
if (this.hitTest( _root["enemy"+i])){
_root.score+=100;
_root["enemy"+i].gotoAndPlay( 2 );
}

}
}
}

Първият му ред е празен!


3. Звездите:

[color=Blue]

onClipEvent (load) {

stars.duplicateMovieClip("stars2", 1000);
stars2._x = stars._x+stars._width;
starsStartx = this._x;
starsSpeed=4;

}

onClipEvent (enterFrame) {

if (_root.spaceship.scrollStart){
this._x-=starsSpeed;
if (this._x<= (starsStartx-stars._width)){
this._x=starsStartx-starsSpeed;
}
}

}

Първите 2 реда са празни!


4. Земята:

[color=Blue]

onClipEvent (load) {

ground.duplicateMovieClip("ground2", 100);
ground2._x = ground._x+ground._width;
groundStartx = this._x;
groundSpeed=10;

}

onClipEvent (enterFrame) {

if (_root.spaceship.scrollStart){
this._x-=groundSpeed;
if (this._x<= (groundStartx-ground._width)){
this._x=groundStartx-groundSpeed;
}
}

}

Първите 2 реда са празни!

5. Враговете:

[color=Blue]onClipEvent (load) {

function reset(){
this._x=600;
this._y=random(200)+100;
enemySpeed=random(4)+1;
this.gotoAndStop(1);
}

reset();

}

onClipEvent (enterFrame) {

if (_root.spaceship.scrollStart){
this._x-=enemySpeed+_root.mainGround.groundSpeed;
} else {
this._x-=enemySpeed;
}


if (this._x<-10) {
reset();
}


if (this.hitTest( _root.spaceship ) ){
_root.gotoAndStop ( "gameOver" );

}


}


6. Layer "Control":

Frame 1 (При мен е 178, заради рекламата!):

[color=Blue]numEnemy=3;

for (i=2; i<=numEnemy; i++){
enemy1.duplicateMovieClip( "enemy"+i, i+100 );

}
score=0;

Frame 2 (При мен е 179!):

[color=Blue]stop();

7. Бутон "Play Again":

[color=Blue]on(press){
gotoAndStop(178);
}

Където 178 е номерът на Frame-а, от който започва самата игра. При мен е 178, поради това, че имам реклама. Ако вие нямате такава, числото трябва да е 1!

Надявам се този урок да ви е от полза и да изглади всички проблеми, които са възникнали при създаването на тази игра!



Ако урокът ви допада, споделете го в Twitter и Facebook или го запазете в Delicious.




Урокът е добавен от: bubsss

Добави коментар

Трябва да сте регистиран потребител за може да оставяте коментари! Направете своята безплатна регистрация още сега.