Dragging
Task
Create some sprites which can be dragged around. The z-order of the sprites is automatically adjusted, the clicked sprite gets to the top.
Result
JavaScript
// Demo 4
const grayFrog = makeGrayFrogLibrary();
function start() {
// Load images and start demo when loading has finished
let ip = new grayFrog.ImagePreloader();
ip.preloadImages(
[
{ name: 'grid', source: 'images/grid.png' },
{ name: 'blueBall', source: 'images/blueBall.png' }
],
() => demo(ip.imageDictionary)
);
}
function demo(imageDictionary) {
// Initialize canvas, controller, and scene
let canvas = document.getElementById('demoCanvas');
let controller = new grayFrog.Controller(canvas, true);
let scene = controller.makeImageScene('main', imageDictionary.grid);
controller.scene = scene;
// User drawn sprite
let rect1 = new grayFrog.DrawnSprite(
'blueRect', scene.midX - 200, scene.midY, 100, 100);
rect1.customDraw = function() {
this.drawRectangleOutline('#0000cc', '#000000', 4, 1, 1);
};
// Bump when selected
rect1.expandOnSelection = true;
scene.addChild(rect1);
// Another user drawn sprite
let rect2 = new grayFrog.DrawnSprite(
'redRect', scene.midX + 200, scene.midY, 200, 200);
rect2.customDraw = function() {
this.drawRectangleOutline('#cc0000', '#000000', 1, 0.5, 0.5);
};
scene.addChild(rect2);
// Enable sprites for dragging
rect1.uiEnabled = true;
rect1.draggable = true;
rect2.uiEnabled = true;
rect2.draggable = true;
// Start the game loop
controller.start();
}