Je zkouškový období

Diplomová práce

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


2. krok - Skákání hrdiny

Abychom docílili pohybu výskoku a pádu z plošiny, bylo potřeba hrdinovi určit další proměnné, které omezují jeho pohyb po ose y.

onClipEvent (load) { 
  gravity = 10;     // konstanta - gravitace
  maxJump = 3;      // konstanta - maximální skok
}

Bylo potřeba vytvořit objekt (movie-clip), po němž se bude hrdina pohybovat, a od kterého se může odrazit, tedy plošinu (platform). Dále bylo nutné zajistit simulaci gravitace, ta byla popsána booleovskou proměnnou air. Je-li tato proměnná true, pak hrdina „padá“ po ose y rychlostí danou proměnnou gravity, na false se proměnná nastaví v okamžiku, kdy se hrdina (hero) dotkne (hitTest) movie-clipu platform.

onClipEvent (enterFrame) { 
  if (_root.platforms.hitTest(_x, _y, true)) { 
    air = false; 
  }	else {air = true;} 
// když se movie-clip hero dotýká movie-clipu platforms (plošina) 
//  pak nefunguje gravitace, jinak gravitace funguje
  if (air == true) {		// když gravitace funguje
    _y += gravity;		
    // pohyb po ose y směrem dolů rychlostí podle proměnné gravity
    this.gotoAndStop ("jump"); } // spustí se animace na snímku jump
  if (air == false) { 		// když gravitace nefunguje
    jump = true;		// je povoleno skákat
    jumpCount = 0; 		// vynulování proměnné počet kroků skoku
    jumpSpeed = 25;}		// nastavení rychlosti skoku
  if (Key.isDown(Key.UP)) { jumpCount += 1; }
  // když je stisknuta šipka nahoru, zvyšuje se proměnná jumpCount
  if (Key.isDown(Key.UP) && jump == true) { _y -= jumpSpeed; }
// když je stisknuta šipka nahoru a panáček je ve skoku, 
// pohybuje se po ose y směrem vzhůru rychlostí danou proměnnou jumpSpeed
  if (jumpCount > maxJump && jumpSpeed > -2) { jumpSpeed -= 2; } 
  // omezení výskoku na počet kroků skoku, snížení rychlosti skoku
}

Ukázka

Nemáte nainstalovaný Macromedia Flash plugin.

DreamTemplate - Web Templates