Forum Batusz.fora.pl v. 1.90 Strona Główna Batusz.fora.pl v. 1.90
Under construction
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

DropOff

 
Napisz nowy temat   Odpowiedz do tematu    Forum Batusz.fora.pl v. 1.90 Strona Główna -> Nasza twórczość
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
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

PostWysł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
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Batusz.fora.pl v. 1.90 Strona Główna -> Nasza twórczość Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin