@petkoneo/phaser3-rex-plugins
Version:
30 lines (25 loc) • 1.08 kB
JavaScript
import Drawer from '../utils/drawer/Drawer.js';
class ShadowDrawer extends Drawer {
draw(startFrame, returnLastFrame) {
var self = this.postFXPipeline;
var shader = this.shader;
var sourceFrame = startFrame;
var targetFrame = this.getAnotherFrame(sourceFrame);
var returnFrame;
// Set uniforms
var uOffsetX = (self.distance / self.renderer.width) * Math.cos(self.rotation);
var uOffsetY = (self.distance / self.renderer.height) * Math.sin(self.rotation)
self.set2f('uOffset', uOffsetX, uOffsetY, shader);
self.set3f('color', self._shadowColor.redGL, self._shadowColor.greenGL, self._shadowColor.blueGL, shader);
self.set1f('alpha', self.alpha, shader);
// Bind and draw
if (returnLastFrame) {
self.bindAndDraw(sourceFrame, targetFrame, true, true, shader);
returnFrame = targetFrame;
} else {
self.bindAndDraw(sourceFrame, null, true, true, shader);
}
return returnFrame;
}
}
export default ShadowDrawer;