![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 603 Pomógł: 131 Dołączył: 24.07.2007 Skąd: Górny Śląsk Ostrzeżenie: (0%) ![]() ![]() |
W ramach ćwiczenia się w js i jQuery(wersja: 1.2.3) postanowiłem popełnić Snake'a, który w praktyce wygląda tak: SNAKE
Info: -sterowanie na klawiszach W,S,A,D -jestem świadom, że odznaczenie inputa sprawia, że gra nie działa. Kody: jQuery:
css: Kod <style type="text/css"> /* <![CDATA[ */ div{ height:20px; width:20px; } div.pole{ background:#217F25; } div.glowa{ background:yellow; } div.ogon{ background:red; } div.owoc{ background:blue; } table.waz,#gameover { margin:20px auto; padding:0; } #gameover{ width:100px; } td,tr{ padding:0; margin:0; border:0; } /* ]]> */ </style> Trochę mi ten kod przycięło do lewej, no ale tak działa forum na tabulacje;) Ładniejszy w źródle strony:) Ten post edytował lord_t 18.07.2008, 21:19:39 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 603 Pomógł: 131 Dołączył: 24.07.2007 Skąd: Górny Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Najpierw trochę odpowiem:
@tiraeth: to nie literówka;) ale fakt, że w wielu miejscach ths można było zastąpić this (co też zrobiłem). W jednym miejscu nie można ( $(document).keypress(function(e){...}), ponieważ tam this odwołuje się do document. @Babcia@Stefa: a od kiedy angielskie nazewnictwo są wyznacznikiem dobrego kodu? Nazwy metod są po ang, bo wydaja mi się krótsze niż pol. odpowiedniki. Jeśli lepiej i łatwiej czyta Ci się kody pisane całkowicie po ang. to możesz sobie przetłumaczyć ten kod. Wersja 1.1 Zmiany: -wyrzucenie 'czytnika' (thx dla bima2) -punktacja Kod jQuery (wkleiłem jako php tylko dlatego, żeby były TABy;) )
Kod css
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
ogólnie dobrze napisana aplikacja - na głębsze przejżenie kodu nie mam czasu i tylko ogólne uwagi (IMG:style_emoticons/default/winksmiley.jpg)
Najpierw trochę odpowiem: @tiraeth: to nie literówka;) ale fakt, że w wielu miejscach ths można było zastąpić this (co też zrobiłem). W jednym miejscu nie można ( $(document).keypress(function(e){...}), ponieważ tam this odwołuje się do document. tak, zmienne prywatne i zasięg - tu ok, ale skoro już takie obtymalizacje i mała "hermetyzacja" kodu to dlaczego używasz eval?? - w ostatniej wersji też jest: Cytat Kod setTimeout(this.nazwa+".timeLoop()",this.szybkosc); i w powyższym właśnie jest eval (IMG:style_emoticons/default/winksmiley.jpg) - a wszystko obchodzisz odwołując się do zmiennej globalnej window.Waz... podczas gdy zwróć uwagę i wklej w pasku adresu poniższy kod i zauważ, że też będzie działał: Kod java script:var a={b:function(){alert('ggg')},c:function(){setTimeout(this.b,1000);}};a.c();void(0); i jeszcze jedna mała uwaga - trochu nie mam czasu analizować kod ale tak na szybko patrząc na metody to chyba nie buforujesz uchwytu do elementów do których się da tylko za każdym razem ich szukasz w DOM?? np. w tej metodzie (tak na szybko nie zauważyłem buforowania uchwytów a i nie zwróciłem głębiej uwagi na logikę gry czy akurat tu da się zbuforować uchwyty): Kod this.putHead=function(i,j) { $('#'+i+'_'+j).addClass('glowa'+this.kierunek); this.checkCol(i,j); this.i=i; this.j=j; } a i nie wiem z jakiego edytora korzystasz więc czy te kreski, że to zmienne prywatne to nie wnikam... ale od razu napiszę jedną uwagę - zmienna prywatna może mieć tą samą nazwę (identyczną) jakby co jak zmienna publiczna i też definiując zmienne w argumentach funkcji danych zmiennych prywatnych nie trzeba definiować (chyba, że sprawdzasz czy jest podany argument) - i tu taki mały teścik: Kod java script:function test(){var a=2;this.a=3;this.a1=function(){return a;};this.a2=function(){return this.a;}};b=new test();alert(b.a1());alert(b.a2());void(0) ps. javascript w tych kodach ma być razem jak będziesz wklejał do paska adresu (IMG:style_emoticons/default/winksmiley.jpg) EDIT. ps. zaktualizuj sobie link do gry w temacie z Twoją ofertą do gry gdyż tam nie działa link (IMG:style_emoticons/default/winksmiley.jpg) Ten post edytował zegarek84 4.02.2010, 21:00:37 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 23:30 |