Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Random = Phaser.Math.Between;
- const COLOR_PRIMARY = 0x4e342e;
- const COLOR_LIGHT = 0x7b5e57;
- const COLOR_DARK = 0x260e04;
- class Demo extends Phaser.Scene {
- constructor() {
- super({
- key: 'examples'
- })
- }
- preload() {
- this.load.scenePlugin({
- key: 'rexuiplugin',
- url: 'https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/plugins/dist/rexuiplugin.min.js',
- sceneKey: 'rexUI'
- });
- this.load.image("bg", "https://i.imgur.com/M93flWZ.jpg");
- this.load.image("lico", "https://i.imgur.com/UUvkoJw.png");
- }
- create() {
- var scrollMode = 0; // 0:vertical, 1:horizontal
- var gridTable = this.rexUI.add.gridTable({
- x: 400,
- y: 300,
- width: (scrollMode === 0) ? 480 : 420,
- height: (scrollMode === 0) ? 240 : 300,
- scrollMode: scrollMode,
- background: this.add.sprite(0, 0, "bg"),
- table: {
- cellWidth: (scrollMode === 0) ? undefined : 60,
- cellHeight: (scrollMode === 0) ? 30 : undefined,
- columns: 1,
- mask: {
- padding: 2,
- },
- reuseCellContainer: true,
- },
- slider: {
- track: this.rexUI.add.roundRectangle(0, 0, 20, 10, 10, COLOR_DARK),
- thumb: this.rexUI.add.roundRectangle(0, 0, 0, 0, 13, COLOR_PRIMARY),
- },
- header: this.rexUI.add.label({
- width: (scrollMode === 0) ? undefined : 30,
- height: (scrollMode === 0) ? 30 : undefined,
- orientation: scrollMode,
- background: this.rexUI.add.roundRectangle(0, 0, 20, 20, 0, COLOR_DARK),
- text: this.add.text(0, 0, 'Header'),
- }),
- footer: null,
- space: {
- left: 20,
- right: 20,
- top: 20,
- bottom: 20,
- table: 10,
- header: 10,
- footer: 10,
- },
- createCellContainerCallback: function (cell, cellContainer) {
- var scene = cell.scene,
- width = cell.width,
- height = cell.height,
- item = cell.item,
- index = cell.index;
- if (cellContainer === null) {
- cellContainer = scene.rexUI.add.label({
- width: width,
- height: height,
- orientation: scrollMode,
- background: scene.rexUI.add.roundRectangle(0, 0, 20, 20, 0).setStrokeStyle(2, COLOR_DARK),
- icon: scene.add.sprite(0, 0, "lico"),
- text: scene.add.text(0, 0, ''),
- space: {
- icon: 10,
- left: (scrollMode === 0) ? 15 : 0,
- top: (scrollMode === 0) ? 0 : 15,
- }
- });
- console.log(cell.index + ': create new cell-container');
- } else {
- console.log(cell.index + ': reuse cell-container');
- }
- // Set properties from item value
- cellContainer.setMinSize(width, height); // Size might changed in this demo
- cellContainer.getElement('text').setText(item.id); // Set text of text object
- console.log("oi", cellContainer.getElement('icon'));
- //cellContainer.getElement('icon').setFillStyle(item.color); // Set fill color of round rectangle object
- return cellContainer;
- },
- items: getItems(100)
- })
- .layout()
- //.drawBounds(this.add.graphics(), 0xff0000);
- this.print = this.add.text(0, 0, '');
- gridTable
- .on('cell.over', function (cellContainer, cellIndex) {
- cellContainer.getElement('background')
- .setStrokeStyle(2, COLOR_LIGHT)
- .setDepth(1);
- }, this)
- .on('cell.out', function (cellContainer, cellIndex) {
- cellContainer.getElement('background')
- .setStrokeStyle(2, COLOR_DARK)
- .setDepth(0);
- }, this)
- .on('cell.click', function (cellContainer, cellIndex) {
- console.log(cellIndex, cellContainer);
- this.print.text += 'click ' + cellIndex + ': ' + cellContainer.text + '\n';
- }, this)
- .on('cell.1tap', function (cellContainer, cellIndex) {
- this.print.text += '1 tap (' + cellIndex + ': ' + cellContainer.text + ')\n';
- }, this)
- .on('cell.2tap', function (cellContainer, cellIndex) {
- this.print.text += '2 taps (' + cellIndex + ': ' + cellContainer.text + ')\n';
- }, this)
- .on('cell.pressstart', function (cellContainer, cellIndex) {
- this.print.text += 'press-start (' + cellIndex + ': ' + cellContainer.text + ')\n';
- }, this)
- .on('cell.pressend', function (cellContainer, cellIndex) {
- this.print.text += 'press-end (' + cellIndex + ': ' + cellContainer.text + ')\n';
- }, this)
- }
- update() { }
- }
- var getItems = function (count) {
- var data = [];
- var startIdx = Random(0, 100);
- for (var i = 0; i < count; i++) {
- data.push({
- id: startIdx + i + " Oi tudo bem???",
- color: Random(0, 0xffffff)
- });
- }
- return data;
- }
- var config = {
- type: Phaser.AUTO,
- parent: 'phaser-example',
- width: 800,
- height: 600,
- scene: Demo
- };
- var game = new Phaser.Game(config);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement