| 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
 |  |