如何解决以正确的顺序绘制一系列等距的敌人还是处理脏矩形?
| 我想知道是否有人可以帮助我确保我的……呃……Z-index(糟糕的双关语,您很快就会明白为什么)的顺序错误。我现在已经连续进行了几个小时,而且我的眼睛看上去还很不方便-但是-也许一夜之间在Stack上提问可以帮助将其推向正确的方向。 我一直在为https://github.com/AlexChesser/jssprite编写代码,到目前为止,我已经进行了第六次测试。使用W键运行,而A和D键则左右移动:http://chesser.ca/jssprite/06-brainnsss....PHP(Gettit?Z-Index ?!热闹)。 无论如何,您会注意到,如果您在屏幕上跑了一会儿。各个僵尸的白色正方形/脏矩形与其他僵尸的正方形重叠。当使用多个重叠的精灵时,如何确保它们都被绘制而不会破坏其他精灵? (您会看到z用于僵尸,但是z索引就像您在CSS中处理重叠时一样-当您连续编写了多个小时的代码时,可能会更有趣)。 谢谢你的 脑子......解决方法
这不是z-index问题,您的僵尸本身还可以。
您的问题确实出在第二行
drawFrame
drawFrame: function(){
Sprite.ctx.clearRect(0,Sprite.width,Sprite.height); //clear previous frame
// I am trouble:
MainContext.clearRect(Sprite.Xpos,Sprite.Ypos,Sprite.height);
它正在清除每次绘制僵尸时僵尸曾经所在的主画布的矩形,这可能会影响附近的物体!
因此,您应该每次都清除整个画布。
尝试在drawFrame
中注释掉MainContext.clearRect,然后在runloop
中添加一个,如下所示。它应该解决您的问题。
runloop = function(m) {
// New clear put here!
MainContext.clearRect(0,canvas.width,canvas.height);
m.drawFrame();
for (Z in Zarr) { // For ZOMBIE in \"Zombie Array\" Aaaaarrrgghhh...
Zarr[Z].pointTo(m);
Zarr[Z].drawFrame();
MainContext.drawImage(Zarr[Z].canvas,Zarr[Z].Xpos,Zarr[Z].Ypos);
};
MainContext.drawImage(m.canvas,m.Xpos,m.Ypos);
};
,渲染前如何通过每个僵尸的y坐标Ypos
对数组(Zarr
)进行排序?还是您遇到(缺乏)透明度的问题?版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。