Tutorijali.rs
Tutorijali.rs
učenje nikad nije bilo lakše
Tutorijali.rs
Photoshop
Flash
Illustrator
CSS & HTML
Kolaboracija
After Effects
Maya
Linux
PHP
OpenSource grafika
Pišite tutorijale sa nama
Reklamirajte se kod nas
Kontakt
   
Pretraga





Prijava na mail listu
Unesite email adresu, kako bi se prijavili na mail listu.


   
WEB SAJT STATISTIKA
Ukupno tutorijala :
322
Photoshop :
178
Flash :
30
Illustrator :
14
CSS & HTML :
23
Kolaboracija :
5
After Effects :
10
Maya :
7
Linux :
11
PHP :
26
OpenSource grafika :
18


Pogledajte ovaj tutorijal!
ContraTeam.Com
Flash Tutorijal : Napravite igricu zmijica
Autor : Valerija Spasojević
Napravite igricu zmijica

U ovom tutorijalu naučićete kako da napravite igricu zmijica. Tutorijal spada u napredne pa se neću osvrtati na osnove Flasha.

Korak 1

Uđite u Flash, izaberite Action Script 2.0, postavite dimenzije 550x450 i 40 fps.

Korak 2

Iz pratećeg materijala učitajte u Flash 1.psd, izbrišite layer 1 i centrirajte sve layere.

Korak 3

Selektuje pozadinu i konvertujte u Movie Clip. Zadajte Instance name “pozadina”, zatim sve layere pretvorite u Movie clip, samo Instance name promenite. Za glavu stavite “glava”, za telo>”telo” i za mrtvu glavu>”mrtva_glava”, hrana>”hrana”.

Korak 4

Uđite u Movie clip glava i na prvi frame dodajte Action.

stop();

Napravite novi Keyframe. Dodajte Movie clip mrtva_glava, pozicionirajte na isto mesto gde je i glava, vratite se na glavnu scenu i odatle izbrišite layer Mrtva glava.

Korak 5

Dodajte tekst ispod pozadine u desni ugao i pratite podešavanja sa slike: var nek bude rezultat, kliknite zatim na Embed i izaberite Numerals.

Korak 6

Sada ćemo dodati instrukcije u levi deo. Pratite opet podešavanja sa slike.

Korak 7

Uzmite Rectangle tool, napravite pravougaonik određene veličine i unesite tekst. Konverujte sve u Movie Clip, postavite na sredinu Registration Point, zadajte Instance namepopup”.

Korak 8

Uđite u Movie Clip popup, dodajte Dynamic text, napišite ispod “Nova igra” i možete da uokvirite sa Rectangle. Konvertujte u Button, Instance name “ponovo”.

Korak 9

Uđite u dugme, napravite da kada se pređe preko njega potamni. Završili smo vizuelni deo sada su na redu kodovi.

Korak 10

Pre nego što počnemo sa kodovima, postavite x za hranu, glavu i telo da bude ista koordinata, postavite popup na sredinu. Napravite novi layer i dodajte Action .Ukratko šta ćemo uraditi ovim kodom. Prvo, glavno telo ćemo učiniti nevidljivim, za glavu i  hranu smo zadali x i y koordinate, zatim smo definisali nove nizove gde su zadata nova tela za x i y koordinate.

setupgame()

function setupgame() {

glava.gotoAndStop(1)

direction = ''

if (telay) {

for (i=telay.length-1;i > 0; i--) {

removeMovieClip(eval('telo'+i))

}

}

popup._visible = false

telo._visible = false

do {

hrana._x = pozadina._x + Math.floor(((pozadina._width-hrana._width)/hrana._width)*Math.random())*hrana._width

hrana._y = pozadina._y + Math.floor(((pozadina._height-hrana._height)/hrana._height)*Math.random())*hrana._height

glava._x = pozadina._x + Math.floor(((pozadina._width-hrana._width)/hrana._width)*Math.random())*hrana._width

glava._y = pozadina._y + Math.floor(((pozadina._height-hrana._height)/hrana._height)*Math.random())*hrana._height

} while(glava._x == hrana._x && glava._y == hrana._y);

framecount = 0;

rezultat= 0

game = true;

telax = new Array();

telay = new Array();

telax.push(glava._x)

telay.push(glava._y)

}

Korak 11

Ova funkcija ne izvršava se na svakom frejmu već na svakih pet proverava da se zmija ne krece izvan okvira i pomera se u skladu sa novim delovima tela na novu poziciju, zatim jede koristeći fuknkciju eat(), a onda proverava da li je zmija udarila od zidove. 

this.onEnterFrame = function () {

if (game) {

if (framecount/5 == Math.ceil(framecount/5)) {

if (!(glava._y <= pozadina._y && direction == 'up') && !(glava._y+glava._height >= pozadina._y+pozadina._height-2 && direction=='down') && !(glava._x+glava._width >= pozadina._x+pozadina._width - 2 && direction =='right') && !(glava._x <= pozadina._x && direction == 'left'))

{

telay[0] = glava._y

telax[0] = glava._x

for (i=telay.length-1;i > 0; i--) {

eval('telo'+i)._y = telay[(i-1)]

eval('telo'+i)._x = telax[(i-1)]

telay[i] = eval('telo'+i)._y

telax[i] = eval('telo'+i)._x

}

}

if (hrana._x == glava._x && hrana._y == glava._y) {

eat()

}

if (direction) {

if (direction == 'up') {

if (glava._y <= pozadina._y) {

dead()

}

else {

glava._y-= glava._width

}

}

else if (direction == 'down') {

if (glava._y+glava._height >= pozadina._y+pozadina._height-2) {

dead()

}

else {

glava._y+= glava._width

}

}

else if (direction == 'right') {

if (glava._x+glava._width >= pozadina._x+pozadina._width - 2) {

dead()

}

else {

glava._x+= glava._width

}

}

else if (direction == 'left') {

if (glava._x <= pozadina._x) {

dead()

}

else {

glava._x-= glava._width

}

}

}

if (game) {

if (insideSnake(glava._x,glava._y,true)) {

dead()

}

}

}

framecount++

}

}

 

Korak 12

U ovom delu koda ćemo definisati keyListener, odnosno kako pritisnite na tastaturi strelice tako će se pomerati zmija. 

keyListener = new Object();

keyListener.onKeyDown = function () {

keycode = Key.getCode()

if (keycode == 37) {

direction = 'left'

}

else if (keycode == 38) {

direction = 'up'

}

else if (keycode == 39) {

direction = 'right'

}

else if (keycode == 40) {

direction = 'down'

}

};

Key.addListener(keyListener);

 

Korak 13

Sada ćemo definisati da kada se završi igra da se ispiše rezultat u popup prozoru. 

function dead() {

popup.rezultat= 'Rezultat: '+(telax.length-1)

popup.swapDepths(this.getNextHighestDepth())

popup._visible = true

glava.gotoAndStop(2)

game = false;

}

 

Korak 14

Sada smo uradili da se ispisuje novi rezultat kad se pojede hrana i da se hrana pomera. Takođe da se po koordinatama ređaju novi delovi tela. 

function eat() {

duplicateMovieClip(telo,'telo'+telay.length,this.getNextHighestDepth())

glava.swapDepths(this.getNextHighestDepth())

eval('telo'+telay.length)._y = eval('telo'+(telay.length-1))._y

eval('telo'+telax.length)._x = eval('telo'+(telay.length-1))._x

telay.push(eval('telo'+telay.length)._y)

telax.push(eval('telo'+telax.length)._x)

do {

hrana._x = pozadina._x + Math.floor(((pozadina._width-hrana._width)/hrana._width)*Math.random())*hrana._width

hrana._y = pozadina._y + Math.floor(((pozadina._height-hrana._height)/hrana._height)*Math.random())*hrana._height

} while(insideSnake(hrana._x,hrana._y));

rezultat= telax.length-1

}

 Korak 15

Provera da li glava ujeda svoje telo. 

function insideSnake(xneedle, yneedle,skiphead) {

if (skiphead) { startat = 1; }

else { startat = 0; }

for (q=startat; q<telax.length; q++) {

if (telax[q] == xneedle) {

if (telay[q] == yneedle) {

return true;

}

}

}

return false;

}

 Korak 16

Kada se igra završi u pop up-u se pojavljuje Nova igra. Ovim kodom smo definisali kada se klikne na dugme da ponovo počne igra. 

popup.ponovo.onRelease = function() {

setupgame()

}

 



Dodaj komentar:
Ime:

Komentar:







Komentari:
Tara
fenomenalna igrica skupila sam 31 kockicu
XD
gde se nalazi prateci materijal odgovor HITNO
Esc
Svaka cast , devojka objasnila!
ookkii
Odlicno. Svaka cast.
Simo
Ćao.. da li bi mogla da odradiš i za cs4 pošto ja pola funkcija jedva nalazim, drugačije je.. ili ako uradiš, da postaviš ovde u komentare link.. ako ne možeš ovde na tutorijali.rs onda na neki tvoj host pa kao html stranicu odradiš.. može?
CS
Posjetite 188.40.66.75:27701
JA
jesam jesam,, xD ae pokusaj da dodjes danas , vido sam te jutros al sam radio nesto :S
Valerija Spasojevic
U guzvi sam :/ A ti si Marko? Ako treba nesto od tutorijala salji na mail!:)
JA
znam dodao sam te :) nego te nema nesto xD
Nemanja Spasić
Odlično..
Nikolina
Srce, ovo si odlicno uradila!
Valerija Spasojevic
Imam, valerija.spasojevic
JA
pokidala si ovo.. imam jedno pitanje.. pojavi se skype? :)
Igor
Vrh!
Petar Lalosevic
Svaka cast ;)