Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.09.2016, 13:59
Новичок на форуме
Отправить личное сообщение для Navira Посмотреть профиль Найти все сообщения от Navira
 
Регистрация: 08.09.2016
Сообщений: 2

Помогите понять код
Не могу разобраться как тут объявляется класс, попытался загуглить нашел ответы что класс объявляется через object.
Может это и не класс вовсе, вроде класс объекты создаются)

Crafty.c("Circle", {
это насколько я понимаю само объявление класса, но как определить сам класс и создать объекты таким образом толком не понятно..
Может кто дать ссылку почитать про подобный подход? Спасибо.

Crafty.init(200, 200);

var dim1 = {x: 5, y: 5}
var dim2 = {x: 20, y: 20}

Crafty.c("Circle", {
   circle: function(radius, color) {
        this.radius = radius;
        this.w = this.h = radius * 2;
        this.color = color || "#000000";
        
        this.bind("Move", Crafty.DrawManager.drawAll)
        return this;
   },
    
   draw: function() {
       var ctx = Crafty.canvas.context;
       ctx.save();
       ctx.fillStyle = this.color;
       ctx.beginPath();
       ctx.arc(
           this.x + this.radius,
           this.y + this.radius,
           this.radius,
           0,
           Math.PI * 2
       );
       ctx.closePath();
       ctx.fill();
       ctx.restore();
    }
});

var circle1 = Crafty.e("2D, Canvas, Circle").attr(dim1).circle(15, "red");

var circle2 = Crafty.e("2D, Canvas, Circle, Fourway").fourway(2).attr(dim2).circle(20, "blue");

circle2.bind("EnterFrame", function () {
    var dx = (circle1.x + circle1.radius) - (circle2.x + circle2.radius);
    var dy = (circle1.y + circle1.radius) - (circle2.y + circle2.radius);
    var distance = Math.sqrt(dx * dx + dy * dy);
    
    if (distance < circle1.radius + circle2.radius) {
        // collision detected!
        this.color = "green";
    } else {
        // no collision
        this.color = "blue"; 
    }
});
Ответить с цитированием
  #2 (permalink)  
Старый 08.09.2016, 14:55
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Navira,
Сообщение от Navira
Может это и не класс вовсе, вроде класс объекты создаются)

Crafty.c("Circle", {
это насколько я понимаю само объявление класса,
Это просто запуск функции из библиотеки crafty.js
http://craftyjs.com/
Ответить с цитированием
  #3 (permalink)  
Старый 08.09.2016, 14:56
Новичок на форуме
Отправить личное сообщение для Navira Посмотреть профиль Найти все сообщения от Navira
 
Регистрация: 08.09.2016
Сообщений: 2

Понял, использовал jsfiddle.net хоть в настройках и стоит PureJS видимо встроен движок Crafty. Плохо что в PureJS нельзя так.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить код слайдшоу. 47rus Общие вопросы Javascript 0 20.03.2016 18:43
Люди помогите добавить код гугл аналитикс sanchez087 Общие вопросы Javascript 2 11.03.2015 16:51
Помогите поправить код JavaScript на сайте karvor AJAX и COMET 1 08.02.2015 13:13
Выпадающие списки. Помогите подправить код. cardsmoney Элементы интерфейса 6 18.02.2011 16:20
Код калькулятора на JS. помогите с ошибкой! kirill.psl Общие вопросы Javascript 9 26.08.2010 11:38