|
| 1 | +// https://blockly-demo.appspot.com/static/demos/blockfactory/index.html#h3t96r |
| 2 | + |
| 3 | +Blockly.Blocks['rectangle'] = { |
| 4 | + init: function() { |
| 5 | + this.appendValueInput("x") |
| 6 | + .setCheck("Number") |
| 7 | + .appendField("x"); |
| 8 | + this.appendValueInput("y") |
| 9 | + .setCheck("Number") |
| 10 | + .appendField("y"); |
| 11 | + this.appendValueInput("width") |
| 12 | + .setCheck("Number") |
| 13 | + .appendField("width"); |
| 14 | + this.appendValueInput("height") |
| 15 | + .setCheck("Number") |
| 16 | + .appendField("height"); |
| 17 | + this.setInputsInline(false); |
| 18 | + this.setPreviousStatement(true); |
| 19 | + this.setNextStatement(true); |
| 20 | + this.setTooltip('draw rectangle'); |
| 21 | + this.setHelpUrl('http://www.example.com/'); |
| 22 | + } |
| 23 | +}; |
| 24 | + |
| 25 | +Blockly.JavaScript['rectangle'] = function(block) { |
| 26 | + var value_x = Blockly.JavaScript.valueToCode(block, 'x', Blockly.JavaScript.ORDER_ATOMIC); |
| 27 | + var value_y = Blockly.JavaScript.valueToCode(block, 'y', Blockly.JavaScript.ORDER_ATOMIC); |
| 28 | + var value_width = Blockly.JavaScript.valueToCode(block, 'width', Blockly.JavaScript.ORDER_ATOMIC); |
| 29 | + var value_height = Blockly.JavaScript.valueToCode(block, 'height', Blockly.JavaScript.ORDER_ATOMIC); |
| 30 | + |
| 31 | + var code = "ctx.fillRect(" + value_x + "," + value_y + "," + value_width + "," + value_height + ");"; |
| 32 | + return code; |
| 33 | +}; |
| 34 | + |
| 35 | +function makeRectangle (){ |
| 36 | + return function (context){ |
| 37 | + context.rotate(this.rotation* this.toRadians); |
| 38 | + context.fillStyle = "rgb(__COLOR__,20,"+Math.floor(Math.random()*255)+")"; |
| 39 | + var x = Math.floor(Math.random()*context.canvas.width); |
| 40 | + var y = Math.floor(Math.random()*context.canvas.height); |
| 41 | + context.fillRect(x, y, 50, 50); |
| 42 | + }; |
| 43 | +} |
| 44 | + |
0 commit comments