Kirjoittaja
|
Aihe: Pelikentän sijainnin nollaus (AS2) (Luettu 239 kertaa) |
|
KerT
Vakio
 
Kirjoituksia: 57

WWW | E-Mail
|
Mulla on pelikenttä joka liikkuu pelin aikana ja itse pelaajaa pysyy paikalla. Kun peli alkaa: tiles._x = 220; tiles._y = 200;
Ja kun pelaajaa kuolee, pelikentän pitäisi nollautua taas. Ja sehän onnistuu kun laitan vaan taas samat x ja y sijainnit.
Mutta haluaisin että kenttä siirtyy sujuvasti takaisin 0 tilaan. Saan sen toimimaan näin:
Code:
_root.onEnterFrame = function() { if (tiles._x < 220) { tiles._x++; } if (tiles._x > 220) { tiles._x--; } if (tiles._y < 200) { tiles._y++; } if (tiles._y > 200) { tiles._y--; } } |
|
mutta kenttä liikkuu liian hidasti. Jos taas laitan +=10; kenttä liikkuu sopivan nopeasti, mutta ei välttämätte mene tasan 220/200 ja jää "pomppimaan".
Miten saan sen liikkumaan oikein, niin että kenttä pysähtyy tasan 220/200?
|
|
|
|
|
timo
SuperSankari
    
Kirjoituksia: 1033

?
WWW |
|
Säästyt if-lauseilta, kun käytät jotain olemassa olevaa tween-kirjastoa. Mutta tässä yksi tapa:
Code:
var _xPos:Number = 220; var _speed:Number = 10;
_root.onEnterFrame = function() { if (tiles._x > _xPos) { tiles._x -= _speed; if (tiles._x < _xPos) tiles._x = _xPos; } else if (tiles._x < _xPos) { tiles._x += _speed; if (tiles._x > _xPos) tiles._x = _xPos; } } |
|
Ja sama tietysti _y:lle. Eli aika sotkuksi menee. Lisäksi kun halutut arvot on saavutettu, haluat luultavasti poistaa onEnterFrame-kuuntelijan.
Code:
_root.onEnterFrame = null; |
|
|
Portfolio - Blogi - Great Apes
|
|
|
BoWa
Hörhö
  
Kirjoituksia: 102

Eipäs tule juuri nyt mitään mieleen..
E-Mail
|
Hyvä sellainen on TweenMax/lite eli trollaas tuolta http://blog.greensock.com/tweenlite/
BoWa,
ps. Virallisesti tulisi välttää _x ja _y position suoraan käsittelyä (pyöristyksistä johtuen) vaan ainoastaan sijoittaa arvo niihin.
|
|
|
|
|
KerT
Vakio
 
Kirjoituksia: 57

WWW | E-Mail
|
Joo, Kiitos! Sain toimimaan.
|
|
|
|
|
|