Помогите понять код
Не могу разобраться как тут объявляется класс, попытался загуглить нашел ответы что класс объявляется через 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"; } }); |
Navira,
Цитата:
http://craftyjs.com/ |
Понял, использовал jsfiddle.net хоть в настройках и стоит PureJS видимо встроен движок Crafty. Плохо что в PureJS нельзя так.
|
Часовой пояс GMT +3, время: 00:36. |