Je zkouškový období

Diplomová práce

Uplatnění počítačových animací v elektronickém publikování


4. krok - Zastřelení nepřítele

Funkce hitTest byla využita také k otestování střely, zda-li se nedotýká protivníka (enemy). Rozdíl je v tom, že movie-clip platform je právě jeden a protivníků může být více, bylo tedy nutné každou instanci movie-clipu enemy unikátně pojmenovat. Zároveň musí funkce hitTest na tyto instance reagovat. Proto byla vytvořena proměnná targets (cíle), která obsahuje všechny názvy ve formátu enemy(číslo). Po dotyku se v movie-clipu enemy spustí snímek dead a střela se vymaže.

Nejprve byla na hlavní časové ose zavedena konstanta pro určení celkového počtu protivníků vložených do scény.

enemy = 3;				// celkový počet protivníků

Movie-clipu bullet byl přiřazen následující ActionScript.

onClipEvent (enterFrame) {			
  if (_name != "bullet") { 	// když jméno není bullet
    numEnemy=_root.enemy;	// počet protivníků uveden v rootu
    for(i=0;i<numEnemy+1;i++){ 
      //dokud je počet protivníků menší nebo roven numEnemy
      targets=_parent["enemy"+i]; 
      //proměnná - obsahuje movie-clipy s názvem ve tvaru enemy(číslo)
      if(this.hitTest(targets)){ 
      //když se střela dotkne movie-clipu určeného proměnnou target
        _parent["enemy"+i].gotoAndPlay("dead");
        //movie-clip enemy(číslo) se nastaví na snímek dead
        removeMovieClip(this); 	// vymazání střely
      }
    }
  }
}

Ukázka

Nemáte nainstalovaný Macromedia Flash plugin.

DreamTemplate - Web Templates