Craftyjs canvas rotation
Craftyjs canvas rotation
如果我将 e1 属性 y 更改为 1 或其他一些正值,则此代码有效,但如果 y 为 0 或负数,则失败。没有错误,但形状未显示。如果我画其他类型的形状,也会出现同样的问题。无论如何,0、90 和 271 等旋转值适用于 y:0。 x 值没有这样的问题。为什么?这是与狡猾.js有关的错误吗?
<script>
Crafty.init(480,680, document.getElementById('test'));
Crafty.c("myComponent", {
init: function () {
this.requires("2D, Canvas");
this.bind("Draw", this._draw_me);
this.ready = true;
},
_draw_me: function (e) {
var ctx = e.ctx;
ctx.beginPath();
ctx.moveTo(e.pos._x, e.pos._y);
ctx.lineTo(e.pos._x + e.pos._w, e.pos._y);
ctx.lineTo(e.pos._x + e.pos._w/2, e.pos._y + e.pos._h);
ctx.lineTo(e.pos._x, e.pos._y);
ctx.fillStyle = "blue";
ctx.fill();
}
});
var e1 = Crafty.e("myComponent")
.attr({x: 100, y: 0, w: 60, h: 60, rotation:180})
.origin("center");
</script>
设置原点之前设置w
和h
。在设置旋转之前设置旋转原点。
这应该清楚地记录在 API 文档中,我继续在 Crafty 的问题跟踪器上打开了一个问题。
如果你在旋转后设置原点,事情会以某种方式变得混乱,并且_draw_me
函数永远不会被调用,因为Crafty认为三角形位于视口(相机(之外,不需要绘制。(观察设置Crafty.viewport.y = 100
时会发生什么 - 出现三角形(
以下片段对我有用。代码按此顺序设置 w
和 h
origin
& rotation
。
Crafty.init();
Crafty.c("myComponent", {
init: function () {
this.requires("2D, Canvas");
this.bind("Draw", this._draw_me);
this.ready = true;
},
_draw_me: function (e) {
var ctx = e.ctx;
ctx.beginPath();
ctx.moveTo(e.pos._x, e.pos._y);
ctx.lineTo(e.pos._x + e.pos._w, e.pos._y);
ctx.lineTo(e.pos._x + e.pos._w/2, e.pos._y + e.pos._h);
ctx.lineTo(e.pos._x, e.pos._y);
ctx.fillStyle = "blue";
ctx.fill();
}
});
var e1 = Crafty.e("myComponent")
.attr({w: 60, h: 60})
.origin("center")
.attr({x: 100, y: 0, rotation: 180});
<script src="https://github.com/craftyjs/Crafty/releases/download/0.7.1/crafty-min.js"></script>
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Three.js Points Rotation
- IE9的HTML5 Canvas getImageData()函数存在问题
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 查找带有边框的HTML5 Canvas(点击)事件的坐标
- 加速我的复杂函数绘图仪(canvas+javascript)
- Canvas赢得't更新
- 在keydown(JS,Jquery)上更改HTML5 Canvas元素
- HTML5 Canvas访问控制允许原始错误
- Jasny bootstrap Off Canvas菜单:如何在导航栏下强制菜单滑动
- 在fabric.js中以PNG格式下载Canvas,给出网络错误
- 如何使用Canvas制作3D动画
- 带有内置图像对象的Canvas组件构造函数;t显示's图像
- Javascript Canvas使用getImageData(x,y,1,1).data获取颜色
- HTML5 Canvas toDataURL(“image/png”)适用于一些绘画,而有些则不然,不确定原因
- Canvas.toDataUrl(“image/png”)工作不正常
- Javascript和Canvas绘制中间有孔的圆
- 以编程方式将fabric-js-canvas的图像替换为hq图像,并重新计算其他对象的坐标和大小
- canvas没有从uri中绘制完整的图像
- Craftyjs canvas rotation