Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: небольшой гамес на JS

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: оцените результат и код
DlTA
Отправлено: 01 Июля, 2012 - 00:20:08
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




оцените гамес, все на чистом js, по возможности прошу оценить и код
код (Отобразить)

(Добавление)
описание: управлять стрелками, суть игры как можно меньше поймать красные блоки,
со временем увеличивается уровень вашего блока, за каждый пойманный уровень отнимается, чем дальше тем больше блоков противников.
Скачать файл: web-game.html
Скачан раз: 60
 
 Top
armancho7777777 Супермодератор
Отправлено: 01 Июля, 2012 - 00:43:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Очень даже не плохо Здорово
Прикольная игрушка, на реакцию Подмигивание
Но что - то они быстро по много сыпаться начинают Улыбка

DlTA пишет:
прошу оценить и код

В полне грамотный код.
Хотя методы лучше вынести за пределы тела функции - конструктора
и объявлять их от его свойства prototype:
CODE (javascript):
скопировать код в буфер обмена
  1. CSpiceObject.prototype.checkEdge = function(){};


CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function test()
  3. {
  4.    this.a = 1;
  5. }
  6.  
  7. test.prototype.method = function(param)
  8. {
  9.    param = param || 0;
  10.    return this.a + param;
  11. }
  12.  
  13. ///////////////////////////////////////////////////////
  14.  
  15. var test1 = new test();
  16.        
  17. var t = test1.method(10);
  18.  


Скачайте (хотя, почему-то мне кажется, что эта книга у Вас есть уже)
javascript. подробное руководство дэвид флэнаган 5-е издание
и прочитайте главу 9 раздел 2 "прототипы и наследования".

но в данном случае пойдёт и так)

P.S. И border-radius: 20px; упустили )
P.P.S. А если border-radius: 50px; то они круглые получатся)

(Отредактировано автором: 01 Июля, 2012 - 01:40:36)

 
 Top
tuareg
Отправлено: 01 Июля, 2012 - 01:35:34
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Согласен с armancho7777777
На счет кода.
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. this.rewiev = function(){
  3.  $("#"+this.name).css("top",this.y-this.r);
  4.  $("#"+this.name).css("left",this.x-this.r);
  5.  $("#"+this.name).css("width",this.r*2);
  6.  $("#"+this.name).css("height",this.r*2);
  7. }
  8.  

Лучше заменить
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. this.rewiev = function(){
  3.  $("#"+this.name).css({top:this.y-this.r,left:this.x-this.r,width:this.r*2,height:this.r*2});
  4. }
  5.  

А еще лучше вообще его сразу запомнить в какую-то переменную
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var $el=$("#"+this.name);
  3. //B уже потом обращаться к ней
  4. // $el.css({top:this.y-this.r,left:this.x-this.r,width:this.r*2,height:this.r*2});
  5.  

Все объекты jQuery лучше сразу закэшировать. И вынести их за цикл.
Еще
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var keyPressX = 0;
  3.         var keyPressY = 0;
  4.        
  5.         // массив инородных обектов
  6.         var alianOobject = [];
  7.        
  8.         var myObj;
  9.  

Можно заменить на
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var keyPressX = 0,
  3.       keyPressY = 0,
  4.         // массив инородных обектов
  5.       alianOobject = [],
  6.       myObj;
  7.  

Только один раз объявить var.
По jQuery почитай _http://jquery.page2page.ru/index.php5/правила_эффективного_использования_jQuery
 
 Top
DlTA
Отправлено: 01 Июля, 2012 - 01:39:40
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




armancho7777777 пишет:
прототипы и наследования
эту тему я вчера перегрыс на хабре (и везде где можно было) общее впечатление от прототипов осталось не очень, так как там мудреная схема с наследованием свойств, которые опосля могут ссылаться на значения в разных объектах, правда были указаны методы обхода, но на данный момент мне вполне хватило создания объекта функцией конструктором (и то фигня что класс слегка перегружен для рядовых объектов))
 
 Top
armancho7777777 Супермодератор
Отправлено: 01 Июля, 2012 - 01:45:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Вы скачайте книгу, что я Вам выше порекомендовал, там всё доходчиво описано.
Ну, может придётся, как мне, раза 4 перечитать эту главу, но ничего )))
 
 Top
DlTA
Отправлено: 01 Июля, 2012 - 01:47:47
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




tuareg пишет:
По jQuery почитай _http://jquery.page2page.ru/index.php5/правила_эффективного_использования_jQuery
все логично

p.s. хотя забавляет тот факт что для скорости никуда не уйдешь от глобальных переменных)
 
 Top
armancho7777777 Супермодератор
Отправлено: 01 Июля, 2012 - 01:49:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




DlTA пишет:
так как там мудреная схема с наследованием свойств, которые опосля могут ссылаться на значения в разных объектах
тут ещё суть и в пространстве имен самих свойств фунции - конструктора (класса) и удобство их использования.
(Добавление)
DlTA пишет:
для скорости никуда не уйдешь от глобальных переменных)
Согласен.

(Отредактировано автором: 01 Июля, 2012 - 01:51:46)

 
 Top
IllusionMH
Отправлено: 01 Июля, 2012 - 03:22:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Соглашусь с предыдущими ораторами, все добротно написаноУлыбка
DlTA пишет:
для скорости никуда не уйдешь от глобальных переменных)

В случае с элементами DOM это так.
Но весь код своей функции следует оборачивать в SIAF (самовызываюшуюся анонимную функцию), что позволит избежать коллизий с вероятным чужим кодом.
CODE (javascript):
скопировать код в буфер обмена
  1. (function() {
  2.  //code here
  3. })();

Главное не переусердствовать со степень вложенности областей видимости, иначе потеря в производительности становится заметной.

Дальше небольшие мелочи
CODE (javascript):
скопировать код в буфер обмена
  1. this.a=a?a:this.a;
  2. //проще
  3. this.a=a || this.a;
  4.  

Переменная k в таком случае будет глобальной
CODE (javascript):
скопировать код в буфер обмена
  1. for(k=0; k<alianOobject.length; k++){

Ну и назначение обработчиков нажатия странное, два раза в обертке ready, можно просто цепочкой
Внутри можно сделать через swith-case(но в данном случае может оказаться потерей в производительности)

upd.
Ухты - мое 666 сообщение

(Отредактировано автором: 01 Июля, 2012 - 03:35:30)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB