Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Vasa prva flash igra
Author Message
zero Offline
Forumaš
***

Posts: 461
Joined: Jan 2008
Reputation: 10
Post: #1
Vasa prva flash igra
Vrlo vjerojatno znate sto su flash igre, te ste mozda i odigrali koju. U ovom tutorijalu cu vam pokusati pribliziti dio AS-a (ActionScript-a) kojim se mozete posluziti u izradi igara. Takodjer flash igre mogu donositi i novce, ali o tome drugi put. Ovi tutorijali nisu namjenjeni totalnim pocetnicima u flashu, vec onima koji tek pocinju s izradom igra ili to zele =).

Prvo nacrtajte jedan krug, te ga pretvorite u simbol. Upisite ovaj kod za taj simbol:
Code:
onClipEvent (load) {
    brzina = 5;
}
onClipEvent (enterFrame) {
    if (Key.isDown(Key.UP)) {
        _y -= brzina;
    }
    if (Key.isDown(Key.DOWN)) {
        _y += brzina;
    }
    if (Key.isDown(Key.LEFT)) {
        _x -= brzina;
    }
    if (Key.isDown(Key.RIGHT)) {
        _x += brzina;
    }
}

onClipEvent (load) je onaj kod koji ce biti izvrsen prilikom ucitavanja simbola, dok je onClipEvent (enterFrame) kod koji ce stalno biti izvrsavan. Key.isDown() provjerava je li izabrana tipka stisnuta, u nasem primjeru Key.isDown(Key.UP), Key.isDown(Key.DOWN)... Sada smo stigli do kordinata. Da biste razumijeli kordinate, pogledajte sljedecu sliku.
[Image: cs_005.gif]
Znaci da povecavanjem _y simbol se pomice sve vise prema dnu staze, te se smanjivanje _y penje prema vrhu staze. Brzinu pomicanja naseg simbola smo vec zadali u brzina varijablu. _x += brzina je isto sto i _x = _x + brzina, a mi cemo naravno koristiti brzi nacin.

Uskoro cu editirati post i napisati nesto o ubrzanju i usporavanju. Takodjer skinite .fla fajl ako negdje zapnete.


.rar  1.rar (Size: 3.61 KB / Downloads: 5)

Sloodno i komentirajte i pitajte. Namigivanje

Brzo. Jeftino. Kvalitetno. Izaberi dva!
(This post was last modified: 04-09-2009 04:50 PM by zero.)
04-09-2009 04:49 PM
Find all posts by this user Quote this message in a reply
zero Offline
Forumaš
***

Posts: 461
Joined: Jan 2008
Reputation: 10
Post: #2
RE: Vasa prva flash igra
Ubrzanje i usporavanje
Sry na duplom postu, no ne mogu editirati stari, a jucer nisam imao net :(. Uglavnom evo nastavak. Kao sto sam obecao, ovaj put cemo obraditi ubrzanje i usporavanje lika. Pogledajte kod, a zatim objasnjenje:

Code:
onClipEvent (load) {
    brzina = 1;
    ubrzanje1 = 0;
    ubrzanje2 = 0;
    usporavanje = 0.9;
}
onClipEvent (enterFrame) {
    if (Key.isDown(Key.UP)) {
        ubrzanje2 -= brzina;
    }
    if (Key.isDown(Key.DOWN)) {
        ubrzanje2 += brzina;
    }
    if (Key.isDown(Key.LEFT)) {
        ubrzanje1 -= brzina;
    }
    if (Key.isDown(Key.RIGHT)) {
        ubrzanje1 += brzina;
    }
    ubrzanje1 *= usporavanje;
    ubrzanje2 *= usporavanje;
    _x += ubrzanje1;
    _y += ubrzanje2;
}

Kao sto vidite, odredio sam neke nove varijable. Takodjer sam smanjio brzinu s 5 na 1. Da je brzina ostala na 5 nas lik bi se prebrzo kretao. Takodjer, pogledajte ubrzanje1 i ubrzanje2. Oni su nula, iz razloga da se u pocetku nas lik ne mice. Te varijable se mjenjaju pritiskom na gumbe tipkovnice. ubrzanje1 odradjuje x os, a ubrzanje2 y os. Ovo nije nista komplicirano, cista matematika.
Skinite fla fajl, a za nekih 10 min. dolazi nastavak (ovaj put editiram He he):


.rar  2.rar (Size: 3.73 KB / Downloads: 3)


Gravitacija
Zasto jabuka pada sa stabla? Gravitacija =). Pokusajmo to napraviti u flashu...

Code:
onClipEvent (load) {
    brzina = 1;
    ubrzanje1 = 0;
    ubrzanje2 = 0;
    usporavanje = 0.9;
    gravitacija = 0.25;
    ubrzgravitacije = 0.5;
}
onClipEvent (enterFrame) {
    if (Key.isDown(Key.UP)) {
        ubrzanje2 -= brzina*ubrzgravitacije;
    }
    if (Key.isDown(Key.DOWN)) {
        ubrzanje2 += brzina*ubrzgravitacije;
    }
    if (Key.isDown(Key.LEFT)) {
        ubrzanje1 -= brzina;
    }
    if (Key.isDown(Key.RIGHT)) {
        ubrzanje1 += brzina;
    }
    ubrzanje1 *= usporavanje;
    ubrzanje2 += gravitacija;
    _x += ubrzanje1;
    _y += ubrzanje2;
}

Nove varijable su gravitacija i ubrzgravitacije. Pogledajte dio koda za UP i DOWN tipke, te ubrzanje2. To su jedine promjene. Jednostavno, a ucinkovito. Sto nam sada fali? Nas lik se krece po praznome prostoru. Probajmo napraviti pod. Stize u sljedecih 10 minuta xD. Takodjer skinite fla fajl:


.rar  3.rar (Size: 4.35 KB / Downloads: 3)


Pod
Nacrtajte pod, najbolje jedan pravokutnik, te ga pretvorite u simbol. Simbolu dajte instance name pod1. Moram napomenuti da je cijeli kod promjenjen, no ipak sam zadrzao neke osnove. Sada se igra pretvara u platformsku igru... Pogledajte kod:
Code:
onClipEvent (load) {
    brzina = 5;
    micanje = false;
    skok = false;
    gravitacija = 5;
}
onClipEvent (enterFrame) {
    if (Key.isDown(Key.RIGHT)) {
        micanje = "desno";
    } else if (Key.isDown(Key.LEFT)) {
        micanje = "lijevo";
    } else {
        micanje = false;
    }
    if (Key.isDown(Key.SPACE) && micanje == false && (this, hitTest(_root.pod1))) {
        skok = true;
    } else {
        skok = false;
    }
    if (this, hitTest(_root.pod1)) {
        _y = _root.pod._y-_root.pod._height/2;
    } else {
        _y += gravitacija;
        skok = false;
        micanje = false;
    }
    if (skok) {
            _y -= 75;
            skok = false;
        micanje = false;
    }
    if (micanje == "desno") {
        _x += brzina;
    }
    if (micanje == "lijevo") {
        _x -= brzina;
    }
}

Sada vam moram objasniti hitTest funkciju. Ona se koristi da bismo provjerili dodiruju li se dva simbola ili stoji li neki simbol na nekoj poziciji. U nasem slucaju, ako se dodiruju igrac (this) i pod (pod1). Idemo polako sada objasniti cijeli kod...
Code:
    if (Key.isDown(Key.RIGHT)) {
        micanje = "desno";
    } else if (Key.isDown(Key.LEFT)) {[quote][/quote][code]
micanje = "lijevo";
} else {
micanje = false;
}[/code]
Provjeravamo jeli stisnuta tipka right, left ili nista od navedenog.

Code:
    if (Key.isDown(Key.SPACE) && micanje == false && (this, hitTest(_root.pod1))) {
        skok = true;
    } else {
        skok = false;
    }
Provjeravamo je li stisnuta tipka SPACE, te mice li se nas lik i dodirujemo li pod. Ako je tvrdnja istinita, onda je skok dozvoljen (skok = true)

Code:
    if (this, hitTest(_root.pod1)) {
        _y = _root.pod._y-_root.pod._height/2;
    } else {
        _y += gravitacija;
        skok = false;
        micanje = false;
    }
Provjeravamo dodiruje li igrac pod. Ako da, onda namjestamo y poziciju. Ako ne, onda pocinje padanje, te zabranjujemo micanje (desno, lijevo) i skakanje.

Code:
    if (skok) {
            _y -= 75;
            skok = false;
        micanje = false;
    }
Ako je dopusteno skakanje, onda cemo staviti da je y os manja za 75 od trenutne. Takodjer zabranjujemo micanje i ponovno skakanje sve dok ne dodirnemo pod.

Code:
    if (micanje == "desno") {
        _x += brzina;
    }
    if (micanje == "lijevo") {
        _x -= brzina;
    }
Ako se micemo prema desno, onda x os povecavamo za 5 (to je vrijednost varijeble brzina), a u suprotnom smanjujemo x os za 5.


.rar  4.rar (Size: 4.97 KB / Downloads: 7)

Slobodno komentirajte, pitajte i sve ostalo =). Nadam se da sam vam pomogao. Sljedeci put cemo ovaj skok malo lijepse odraditi jer izgleda kao da se nas lik teleportira za 75 pixela prema gore Rofl. Pozdrav.

Brzo. Jeftino. Kvalitetno. Izaberi dva!
(This post was last modified: 05-09-2009 01:51 PM by zero.)
05-09-2009 12:23 PM
Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)