Kierrä taustaa

Home » Blogi » Kierrä taustaa

Viimeisessä luvussa sankarimme sai kyvyn pyöriä ja kävellä missä tahansa kulmassa. Vaikka sankari on varmasti erittäin kiitollinen siitä (ja olkoon rehellinen, kukapa ei tekisi), voimme tehdä mielenkiintoisemmaksi vierittämällä ja kiertämällä taustaa. Sankari pysyy paikoillaan, mutta taustaa pyöritetään vasen/oikea nuolinäppäimillä ja kuten kierrettävä tausta ei riitä tekemään ihmiskuntaa onnellisemmaksi, tausta rullaa myös ylös/alas nuolinäppäimillä.

Jos katsot ruutua Flash-esikatselussa, näet kuinka koko kartta on piirretty ulos, mutta vain pieni osa näkyy milloin tahansa. Ole siis varovainen, kun kokeilet suuria karttoja, joissa on suuri näkyvä alue, sillä pelisi voi olla liian hidas pelata. Älä unohda, että jokainen laatta, jonka Flashin on piirrettävä/siirrettävä/kierrettävä, tarvitsee toisen jakson huonosta vanhasta prosessorista, ja useimmilla pelisi pelaajilla ei ole vielä uusinta 10 GHz:n supertietokonetta (ei, en ole itse asiassa kysynyt useimmilta ihmisiltä maailmassa, millaisia ​​tietokoneita he käyttävät, mutta uskon silti, että heillä ei ole uusimpia tietokoneita, voin tietysti olla väärässä.

Ensin meidän on käännettävä laatat. Meillä on jo “laatat” -elokuvaleike, jossa on kaikki laatat, ja saatat ajatella, että voimme yksinkertaisesti kiertää “laatat” mc:tä. Se on väärin! Maailma on joskus niin epäreilu… Ongelmana on, että kaikki Flashin elokuvaleikkeet pyörivät keskipisteensä ympäri. Laatat-elokuvaleikkeessämme on keskipiste vasemmassa yläkulmassa, joten se käännetään vasemman yläkulman ympäri. Ellet halua peliä, joka pyörii aina vasemman yläkulman ympäri (en ole toistaiseksi nähnyt sellaista peliä), meidän on lisättävä toinen pidikeelokuvaleike. Asetamme “laatat” mc:n tämän pidikkeen mc:n sisään ja sitten voimme pyörittää pidikettä mc murehtimatta enää vasemmasta yläkulmasta.

Lisää koodi builMap-funktion alussa:

_root.attachMovie(“tyhjä”, “rotate_tiles”, 1);
_root.rotate_tiles._x=120;
_root.rotate_tiles._y=140;
_root.rotate_tiles.attachMovie(“tyhjä”, “laatat”, 1);
game.clip = _root.rotate_tiles.tiles;
“rotate_tiles” on elokuvaleike, jota käännetään. Se ei liiku, joten aseta se lavan keskelle vaakatasossa. Olen myös sijoittanut lähelle lavan alaosaa, joten sankarilla on enemmän näkyvää aluetta edessä ja vähemmän takana. Se on sinun päätettävissäsi, kuinka haluat sijoittaa kierretyt laatat, onneksi voit muuttaa sen sijaintia niin paljon kuin haluat.

Koska meillä on rullaava tausta, sankarimme pysyy samassa paikassa, mutta tausta (game.clip mc) siirretään vastakkaiseen suuntaan. Joten meidän on sijoitettava se alkuun. Lisää buildMap-toimintoon:

game.clip._x = -(char.xtilegame.tileW)-game.tileW/2; game.clip._y = -(char.ytilegame.tileH)-game.tileH/2;
(char.xtile*game.tileW)-game.tileW/2 on paikka, johon sankari sijoitetaan ja mc-laatat siirretään saman verran täysin toiseen suuntaan.

Meidän on myös lisättävä 2 riviä MoveChar-funktion loppuun vierittääksemme taustaa, kun olemme laskeneet sankarin uuden sijainnin:

game.clip._x = peli.centerx-ob.x;
game.clip._y = game.centery-ob.y;
Nyt laattojen varsinaista kiertoa varten lisäämme vain yhden rivin, jotta voit kiertää lisättyä pidikettä muulla tavalla. Kuten olemme ilmoittaneet game.clipin tässä pidikkeessä mc, voimme käyttää sitä _parent-ominaisuuden avulla:

if (Key.isDown(Key.RIGHT)) {
game.clip._parent._rotation -=5;
ob.clip._rotation +=5;
} else if (Key.isDown(Key.LEFT)) {
game.clip._parent._rotation +=5;
ob.clip._rotation -=5;
}


Ja siinä se tälle päivälle.

Vinkki: kun laattojasi käännetään, niiden väliin saattaa muodostua ruman näköisiä viivoja:

Voit korjata sen lisäämällä laattojen kokoa 1 pikselillä. Esimerkissämme laatat sijoitettaisiin edelleen 30 pikseliä käyttäen, mutta niiden todellinen koko olisi 31 kuvapistettä.