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