rafaluk
Świstaky
Dołączył: 01 Kwi 2006
Posty: 369
Przeczytał: 0 tematów
Pomógł: 5 razy Ostrzeżeń: 4/5 Skąd: z dupy kurde
|
Wysłany: Pią 11:19, 02 Lis 2007 Temat postu: DropOff |
|
|
Batusz!
Jak już Ci powiedziałem, kiedy chamsko szedłeś na basen wychodząc mi naprzeciwko, zrobiłem grę. Grę pt. DropOff, prawie całkowity klon komórkowego DropOff'a. Zamieściłem ją na [link widoczny dla zalogowanych], ale jakoś nie działa. Nie działają strzałki na boki (aha... no... przynajmniej wiem, dlaczego...). Dlatego specjalnie dla Ciebie pozbywam się wszelakich praw autorskich i zamieszczam kod gry na forum.
Kod: |
stop();
predkosc = 10;
tajm = 0;
score = 0;
var plat_nr = 0;
var linia_nr = 0;
//
onEnterFrame = function () {
tajm++;
score += predkosc;
if (score == 1000) {
predkosc = 13;
}
if (score == 4000) {
predkosc = 16;
}
if (score == 9000) {
predkosc = 20;
}
if (score == 13000) {
predkosc == 25
}
if (plat._y<=1) {
plat.removeMovieClip(this);
plat_dodaj();
}
if (linia._y<=1) {
linia.removeMovieClip(this);
linia_dodaj();
}
if (tajm == 31) {
tajm = 0;
}
};
//
kulka.onEnterFrame = function() {
if (Key.isDown(Key.LEFT)) {
this._x -= 12;
} else if (Key.isDown(Key.RIGHT)) {
this._x += 12;
}
if (this.hitTest(plat) && !this.hitTest(linia)) {
this._y = plat._y-30;
}
if (this.hitTest(linia) || !this.hitTest(plat)) {
this._y += 10;
}
if (this.hitTest(ogr)) {
this._y = ogr._y-30;
}
if (this._y == 0) {
_root.gotoAndPlay(2);
predkosc = 100000000000000000;
}
};
//
var linia_dodaj = function () {
linia = attachMovie("linia", "linia"+linia_nr, 1000+linia_nr);
linia._x = plat._x+15;
linia._y = plat._y;
linia.onEnterFrame = function() {
linia._y -= predkosc;
linia_nr++;
if (linia_nr>100) {
linia_nr = 0;
}
};
};
//
var plat_dodaj = function () {
plat = attachMovie("plat", "plat"+plat_nr, 1000+plat_nr);
plat._x = random(550);
plat._y = 600;
plat.onEnterFrame = function() {
plat._y -= predkosc;
plat_nr++;
if (plat_nr>100) {
plat_nr = 0;
}
};
};
linia_dodaj();
|
Jeśli masz Flesza emiks to masz instrukcję, co należy zrobić, po kolei:
a) Włącz Flasha MX, żadnego innego.
b) Modify->Document lub CTRL+J.
c) Zmień Frame Rate na 35.
d) Na scenie narysuj koło bez obramowania, o średnicy około 60 px.
e) Teraz czas na platformy:
-CTRL+F8, MovieClip, nazwa nie ważna
-Narysuj linię o grubości 5 px. Długość 600, współrzędne (-643.5, 0)
-Narysuj taką samą linię, tylko długość zmień na 565 i współrzędne na (77.5, 0)
f) Powróć na scenę i stwórz nowy MovieClip (CTRL+F8).
g) Narysuj linię o długości 25 px i x: -12.7.
h) Zaznacz ją i zmień alpha koloru na 0 (możesz też zrobić to później w ActionScripcie: nazwa_MovieClipa._alpha = 0;).
i) Powrót na scenę, nowy MC, nazwa jak zwykle byle jaka.
j) Linia o minimalnej grubości, (0, 400), Width: 550. To będzie nasz ogranicznik, by kulka po zetknięciu się z dolną ścianką nie spadała dalej w dół.
k) Powrót na scenę. Kliknij F11. Otworzy się Library (z ang. krowa) tam kliknij na jedną z pozycji, którą jest nasza kulka PPM.
l) Wybierz Linkage.
m) Zaznacz Export for Action Script i Export in first frame. Wpisz: kulka.
n) Zrób tak jeszcze z platformą, nadając identyfikator: "plat", i z naszym ogranicznikiem, którego id. musi brzmieć "ogr".
Dalej!
o) Teraz stwórz pole tekstowe w prawym górnym rogu. W panelu Properties daj mu wyrównanie do prawej i w polu Var wpisz score. Zmień typ na Dynamic Text. Obok Static Textem napisz Score:.
p) Nowa warstwa, na dół z nią, zrób jakieś byle jakie tło. Żeby biało nie było.
r) Jeszcze druga klatka z akcją stop(); z napisem przegrałeś.
s) buuuuuu
Dobra koniec, teraz objaśnienie kodu:
Kod: |
stop();
// na początku dodajemy poszczególnym zmiennym dane wartości
predkosc = 10;
tajm = 0;
score = 0;
var plat_nr = 0;
var linia_nr = 0;
// zdarzenia poniższe znajdują się bloku onEnter Frame, gdyż będę wykonywane w każdej klatce, a nie tak, jak te powyższe, tylko raz
onEnterFrame = function () {
//tajm++ to to samo co: tajm = tajm + 1, czyli dodajemy cały czas do zmiennej tajm 1
tajm++;
//W każdej klatce do score dodajemy wartość zmiennej predkość, żeby przy wyższej prędkości szybciej punkty leciały
score += predkosc;
//jeśli score wynosi 1000, predkosc wynosi 13... itd
if (score == 1000) {
predkosc = 13;
}
if (score == 4000) {
predkosc = 16;
}
if (score == 9000) {
predkosc = 20;
}
if (score == 13000) {
predkosc == 25
}
//jeśli pozycja na osi Y obiektu plat będzie mniejsza lub równa 1, kasujemy ją i wywołujemy funkcję plat_dodaj (zaraz będzie)
if (plat._y<=1) {
plat.removeMovieClip(this);
plat_dodaj();
}
// to samo z linią
if (linia._y<=1) {
linia.removeMovieClip(this);
linia_dodaj();
}
//Jeśli dodający się cały czas tajm dojdzie do 31, zmieniamy jego warość na 0
if (tajm == 31) {
tajm = 0;
}
};
//akcje wykonywane w każdej klatce przez MC kulka
kulka.onEnterFrame = function() {
//to chyba wiesz...
if (Key.isDown(Key.LEFT)) {
this._x -= 12;
} else if (Key.isDown(Key.RIGHT)) {
this._x += 12;
}
//jeśli dotyka plat i nie dotyka linia, Y kulki to Yplat minus 30
if (this.hitTest(plat) && !this.hitTest(linia)) {
this._y = plat._y-30;
}
// || oznacza "lub"
if (this.hitTest(linia) || !this.hitTest(plat)) {
this._y += 10;
}
if (this.hitTest(ogr)) {
this._y = ogr._y-30;
}
//jesli kulki y bedzie 0, jedziemy do nastepnej klatki. Zwroc uwagę, że wszystkie te akcje są wykonywane dla obiektu kulka, dlatego trzeba napisać _root, czyli odnieść się do głównej sceny
if (this._y == 0) {
_root.gotoAndPlay(2);
predkosc = 100000000000000000;
}
};
//funkcja dodająca linię (spróbuj sam zdefiniować)
var linia_dodaj = function () {
linia = attachMovie("linia", "linia"+linia_nr, 1000+linia_nr);
linia._x = plat._x+15;
linia._y = plat._y;
linia.onEnterFrame = function() {
linia._y -= predkosc;
linia_nr++;
if (linia_nr>100) {
linia_nr = 0;
}
};
};
// podobnie
var plat_dodaj = function () {
plat = attachMovie("plat", "plat"+plat_nr, 1000+plat_nr);
plat._x = random(550);
plat._y = 600;
plat.onEnterFrame = function() {
plat._y -= predkosc;
plat_nr++;
if (plat_nr>100) {
plat_nr = 0;
}
};
};
//no i wywołanie funkcji na początku gry, kiedy tajm jest zerowy
linia_dodaj(); |
PROSZĘ!
Post został pochwalony 0 razy
|
|