Kliknite tukaj, da si ogledate profil, kot ga vidijo drugi

Gravitacijska žoga

  Zanimiva lekcija, kjer bomo narisali žogo, potem pa ji z veliko akcijske kode določali gravitacijske zakone.
 
 
1
 
 
Ustvarite nov ActionScript 3.0 dokument.
 
 
2
 
 
Izberite orodje Oval Tool (bližnjica je tipka O).
 
 
3
 
 
Določite še poljuben Fill Color.
 
 
4
 
 
Narišite srednje mali krog.
 
 
 
 
 
5
 
 
Izberite orodje Selection Tool (bližnjica je tipka V).
 
 
6
 
 
Dvakrat kliknite na narisan krog in pritisnite tipko F8.

V novem oknu Type določite Movie clip in kliknite na gumb OK.
 
 
7
 
 
V polje Instance name vpišite gameBall (glej sliko).
 
 
8
 
 
Kliknite na Frame 1.
 
 
9
 
 
Pritisnite tipko F9 in vnesite naslednjo akcijsko skripto:

gameBall.x = stage.stageWidth / 2;
gameBall.y = stage.stageHeight / 2;
 
var speedY:Number = 0;
var speedX:Number = 0;
var radius:Number = gameBall.height / 2;
var friction:Number = 0.98;
 
var ax:Number = 0;
var ay:Number = 0;
var gravity:Number = 0.5;
 
addEventListener (Event.ENTER_FRAME, enterFrameHandler);
 
function enterFrameHandler (e:Event):void {
  //In each frame, add the necessary "forces" that moves the "gameBall"
  speedY += gravity;
  speedY += ay;
  speedX += ax;
 
  speedY *= friction;
  speedX *= friction;
 
  gameBall.y += speedY;
  gameBall.x += speedX;
 
  if (gameBall.y + radius > stage.stageHeight) {
    //When we hit the bottom, reposition the ball to be exactly on the
    //bottom edge. Change the sign of the speedY so we go to the other direction.
    gameBall.y = stage.stageHeight - radius;
    speedY *= -1;
  }
  //Check if the ball hits the top
  else if (gameBall.y - radius < 0) {
    gameBall.y = radius;
    speedY *= -1;
  }
  //Check the right edge
  if (gameBall.x + radius > stage.stageWidth) {
    gameBall.x = stage.stageWidth - radius;
    speedX *= -1;
  }
  //Check the left edge
  else if (gameBall.x - radius < 0) {
    gameBall.x = radius;
    speedX *= -1;
 
  }
}
 
stage.addEventListener (KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.addEventListener (KeyboardEvent.KEY_UP, keyUpHandler);
 
function keyDownHandler (e:KeyboardEvent):void {
  switch (e.keyCode) {
 
    case Keyboard.LEFT :
      ax = -0.5;
      break;
 
    case Keyboard.RIGHT :
      ax = 0.5;
      break;

    case Keyboard.UP :
      gravity = 0;
      ay = -0.5;
      break;

    case Keyboard.DOWN :
      ay = 0.5;
      break;
  }
}
 
function keyUpHandler (e:KeyboardEvent):void {
  gravity = 0.5;
  ax = 0;
  ay = 0;
}
 
 
10
 
 
Pritisnite tipki CTRL + ENTER, da si ogledate produkt.

Kliknite tukaj, da si ogledate mojega.
 
 
Komentiraj
 
 
 
 
 
31.5.2008, 8:27
A ni to bilo že predstavljeno z tistim jabolkom?
 
 
 
 
3.6.2008, 13:20
Ne razumem sploh v čem je finta, da se žoga prikaže in pade ? Poleg tega je napaka: Dvakrat kliknite na narisa krog in pritisnite tipko F8.

narisaN
 
 
 
 
28.8.2008, 15:53
Kljuka, kako ne razumeš? Saj ni finta v tem, da se prikaže in pade, ampak v tem, da lahko gravitacijo uporabiš v svojih mojstrovinah.
 
Prijava in registracija
 
 
 
Zmaga.com ponuja brezplačno in razumljivo učenje računalniških programov, vas na enkraten način spozna z različnimi svetovnimi jeziki, s podrobno obrazloženimi recepti prikaže čare kulinarike in vam prežene strahove pred domačimi opravili.
 
 
Poleg tega lahko prebirate poučne članke, ki so namenjene širjenju naše splošne razgledanosti ter preverite svoje znanje z priljubljenim in enostavnim sistemom za preverjanje znanja. Če med vsebinami, ki se dodajajo vsak dan, ne najdete želenega znanja, je za vaša vprašanja na voljo dobro obiskan forum, kjer lahko tudi aktivno sodelujete. V primeru, da bi radi svoje praktično znanje delili z ostalimi, pa to lahko storite preko preprostega vmesnika za dodajanje vsebin. Zmagajte z znanjem z Zmaga.com!