Фон отображается над спрайтами в crafty.js
В небольшом проекте crafty.js я использовал спрайт в качестве фонового изображения, но он рендерит поверх других спрайтов. Как это исправить? Код для главной сцены приведен ниже:
Crafty.scene('game', function () {
Crafty.background('bg');
Crafty.e("Background, DOM, 2D, bg")
.attr({ x: 0, y: 0});
drawStage();
points = 0;
updatePoints();
var speed = 1; // Number of frames per second
// Game objects
var appleEvent = Crafty.bind('EnterFrame', function () {
if (randomInt(0, 60) === 0) {
Crafty.e('Apple')
.attr({
x: randomInt(1, 19) * cell,
y: randomInt(1, 16) * cell
});
}
});
}, function () {
Crafty.unbind('EnterFrame', appleEvent);
});
2 ответа
Решение
Как насчет конкретной настройки z-индекса сущностей?
var img_w = 1024;
var img_h = 768;
var bg = Crafty.e("2D, DOM, Image").attr({ w: img_w, h: img_h });
bg.z = 0;
Далее в коде:
var player = Crafty.e();
player.z = 1;
Непонятно, откуда берется bg, но у меня была похожая проблема с фоновым изображением, перезаписывающим содержимое переднего плана. Этот пост на форуме содержал ответ: https://groups.google.com/forum/?fromgroups=
По сути, вместо назначения объекта фону, я назначил URL-адрес изображения для локального файла:
Crafty.background("url('path/to/image.png')");