08.01.2015 Views

PDF - Xakep Online

PDF - Xakep Online

PDF - Xakep Online

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Joystick<br />

Ñàì ñåáå äåâåëîïÅð!<br />

Ãëàâà íóìåðî äóî: Òâîðèì àðêàäó<br />

Àëåêñàíäð "xtracer" Ëîãèíîâ (http://www.rgw.ru)<br />

242163673101010.17645356242785988456324216367310<br />

Ýòîò êîä ïåðåäâèãàåò ëàçåð â ïðàâóþ<br />

ñòîðîíó ýêðàíà. Çíà÷åíèå 500 îçíà-<br />

÷àåò, ÷òî ëàçåð âèäåí ëèøü â äàííûõ<br />

ïðåäåëàõ ýêðàíà, à çàòåì îí âîçâðàùàåòñÿ<br />

íà òåêóùóþ ïîçèöèþ. Êîìàíäà<br />

"this.removeMovieClip()" âûòèðàåò<br />

ëàçåð ïî ïåðåñå÷åíèþ çíà÷åíèÿ 500.<br />

Çàäíèé ôîí è ñîçäàíèå ýôôåêòà<br />

äâèæåíèÿ<br />

Äëÿ ñîçäàíèÿ ýôôåêòà äâèæåíèÿ òåáå<br />

ïðèäåòñÿ ñîçäàòü àíèìèðîâàííûé<br />

çàäíèé ôîí. Äëÿ íà÷àëà ñîçäàé íîâûé<br />

ñëîé, íàçîâè åãî ground è íàðèñóé<br />

íà íåì çàäíèé ôîí. Ó÷òè, ÷òî<br />

òâîé ôîí äîëæåí áûòü ìàêñèìàëüíî<br />

ðàçíîîáðàçíûì, èíà÷å òû íå ñìîæåøü<br />

ïîëó÷èòü ýôôåêò äâèæåíèÿ.<br />

Òàêæå ïîñòàðàéñÿ, ÷òîáû â íà÷àëå è<br />

â êîíöå çàäíèé ôîí áûë èäåíòè÷åí<br />

(ýòî ïîòðåáóåòñÿ íàì ïîçäíåå). Êîãäà<br />

âñå áóäåò ãîòîâî - êîíâåðòíè åãî<br />

â ýëåìåíò (F8), íà ïàíåëè Instance<br />

âûñòàâü çíà÷åíèå "Movie Clip" è íàçîâè<br />

íîâûé îáúåêò ground. Òåïåðü<br />

ïðîäóáëèðóé îáúåêò, ïîâòîðè âñå òå<br />

æå äåéñòâèÿ (F8, CTRL+I, "Movie<br />

Clip") è ïðèñâîé åìó èìÿ ground2.<br />

Ïåðåìåñòè ground2 âïðàâî òàê, ÷òîáû<br />

êîíåö ground áûë ïëîòíî (ïîìíèøü,<br />

ÿ ãîâîðèë îá èäåíòè÷íîñòè)<br />

ñîñòûêîâàí ñ íà÷àëîì ground2. Îêðàñü<br />

ground è ground2 è ïðåâðàòè<br />

(F8) èõ â íîâûé ýëåìåíò. Èñïîëüçóÿ<br />

Instance, íàçîâè ïîëó÷èâøèéñÿ îáúåêò<br />

mainGround ñî çíà÷åíèåì "Movie<br />

Clip". Çà÷åì ìû ïðîâîäèëè ñòîëü<br />

ñëîæíóþ îïåðàöèþ Âñå î÷åíü ïðîñòî.<br />

×òîáû íå äâèãàòü íåñêîëüêî ñëîåâ<br />

(ñëèøêîì ìóòîðíî), ìû èñïîëüçóåì<br />

ýôôåêò ïîäìåíû, äâèãàÿ îñíîâíîé<br />

ôîí. Äëÿ âîïëîùåíèÿ ýôôåêòà â<br />

æèçíü äàâàé äîáàâèì ñëåäóþùèé<br />

êîä ê mainGround. Èñïîëüçóé Actions<br />

è ââåäè ñëåäóþùèå çíà÷åíèÿ:<br />

onClipEvent (load) {<br />

ground.duplicateMovieClip("ground2",<br />

100);<br />

ground2._x =<br />

ground._x+ground._width;<br />

groundStartx = this._x;<br />

groundSpeed = 55;<br />

}<br />

onClipEvent (enterFrame) {<br />

this._x -= groundSpeed;<br />

if (this._xPublish<br />

Preview (F12). Òâîé êîðàáëü äîëæåí<br />

ïåðåìåùàòüñÿ ïî âñåé îñè êîîðäèíàò<br />

è ñòðåëÿòü, ôîí äîëæåí ðåàëèñòè÷íî<br />

ïåðåìåùàòüñÿ, ñîçäàâàÿ ýôôåêò<br />

äâèæåíèÿ. Åñëè âñå ÎÊ, òî ïåðåéäåì<br />

ê ñîçäàíèþ âðàãîâ.<br />

Çëîáíûé âðàã<br />

Äëÿ íà÷àëà òåáå ïîòðåáóåòñÿ ñîçäàòü<br />

ìîäåëü ïðîòèâíèêà. Ëó÷øå, åñëè îí<br />

áóäåò â íåñêîëüêî ðàç ìåíüøå òâîåãî<br />

îñíîâíîãî êîðàáëÿ, òàê êàê êîíöåïöèÿ<br />

ïðîåêòà ïðåäïîëàãàåò áîëüøîå<br />

êîëè÷åñòâî âðàãîâ íà îäíîì ýêðàíå.<br />

Íå ñòîèò óãëóáëÿòüñÿ â äåòàëèçàöèþ<br />

- âðàã äîëæåí áûòü ìåëêèì, ïðîíûðëèâûì<br />

è ìîëíèåíîñíûì. Åñëè òâîé<br />

îáúåêò ðàçðóøåíèÿ ãîòîâ - êîíâåðòíè<br />

åãî â ýëåìåíò (F8), â Instance (åñëè<br />

åùå íå çàïîìíèë - CTRL+I) âûñòàâü<br />

çíà÷åíèå "Movie Clip" è ïðèñâîé åìó<br />

èìÿ enemy1. Ïðåäïîëàãàåòñÿ, ÷òî<br />

ïðîòèâíèê áóäåò ëåòåòü òåáå íàâñòðå÷ó,<br />

ñïðàâà íàëåâî. Áîëåå òîãî,<br />

ïðîòèâíèêîâ äîëæíî áûòü êàê ìîæíî<br />

áîëüøå, à ìåñòà ïîÿâëåíèÿ - ñëó÷àéíûìè.<br />

Çàäà÷à äîñòàòî÷íî ñëîæíàÿ,<br />

íî ðàçðåøèìàÿ. Äëÿ íà÷àëà çàñòàâèì<br />

íàøèõ âðàãîâ äâèãàòüñÿ ñ ðàçíîé<br />

ñêîðîñòüþ. Äëÿ ýòîãî âûáåðè enemy1<br />

è, èñïîëüçóÿ Actions (CTRL+ALT+A),<br />

ââåäè ñëåäóþùèé êîä:<br />

onClipEvent (load) {<br />

function reset(){<br />

this._x=500;<br />

this._y=random(200)+100;<br />

enemySpeed=random(4)+1;<br />

}<br />

reset();<br />

}<br />

Êîä íå òîëüêî óñòàíàâëèâàåò ãðàíèöû<br />

äâèæåíèÿ êîðàáëÿ, íî è óñòàíàâëèâàåò<br />

ñëó÷àéíîñòü åãî ïîÿâëåíèÿ â ïðåäåëàõ<br />

îò 99 äî 299 ïî îñè êîîðäèíàò<br />

Y. Ñòðî÷êà "enemySpeed=random(4)+1"<br />

ðàññ÷èòûâàåò ñëó÷àéíóþ<br />

ñêîðîñòü êîðàáëÿ (â ïðîìåæóòêå îò 1<br />

äî 4).<br />

Òåïåðü çàñòàâèì ïðîòèâíèêà äâèãàòüñÿ.<br />

Íå çàêðûâàÿ îêíà, äîáàâèì<br />

åùå îäèí êîä:<br />

onClipEvent (enterFrame) {<br />

if (_root.sship.scrollStart){<br />

this._x-<br />

=enemySpeed+_root.mainGround.gro<br />

undSpeed;<br />

} else {<br />

this._x-=enemySpeed;<br />

}<br />

if (this._x

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!