这是一款最新的经典 HTML5 俄罗斯方块游戏插件。该插件使用html5和Blockrain.js来制作,它具有使用简单、响应式、可定制、速度快、有积分记录和自动游戏的特点。
基本使用方法
可以使用任何一个元素来作为游戏窗口(一个div
、article
或 figure
等等都可以),并确保通过CSS设置了该元素的宽度和高度。可以为元素设置任何的class,demo中设置为.game
。
< div class = "game" style = "width:250px; height:500px;" ></ div > |
然后在页面中引入 jQuery和blockrain.jquery.js文件。接下可以通过$(‘.game’).blockrain()方法调用俄罗斯方块插件。建议添加blockrain.css到页面中,它提供了一些俄罗斯方块界面的样式,当然你也可以自定义界面样式。
<!-- The stylesheet should go in the <head>, or be included in your CSS --> < link rel = "stylesheet" src = "blockrain.css" > <!-- jQuery and Blockrain.js --> < script src = "jquery.js" ></ script > < script src = "blockrain.js" ></ script > |
<script> $( '.game' ).blockrain(); </script> |
你还可以使俄罗斯方块游戏连续自动游戏。
$( '.game' ).blockrain({ autoplay: true , autoplayRestart: true }); |
游戏主题
Blockrain 有许多“即插即用”的主题。你也可以在BlockrainThemes中添加自定义的主题。你可以对主题进行多项设置,甚至可以定制纹理(基于Base64编码)。
{ background: '#000000' , // The main background color. backgroundGrid: '#101010' , // You can draw a small background grid as well. primary: null , // Color of the falling blocks. This overrides the standard block color. secondary: null , // Color of the placed blocks. This overrides the standard block color. stroke: null , // Border color for the blocks. innerStroke: null , // A small border inside the blocks to give some texture. // The following are the colors of each piece blocks: { line: '#fa1e1e' , square: '#f1fa1e' , arrow: '#d838cb' , rightHook: '#f5821f' , leftHook: '#42c6f0' , rightZag: '#4bd838' , leftZag: '#fa1e1e' } } |
下面是一个自定义纹理的retro主题(vim)的例子:
{ background: '#000000' , backgroundGrid: 'data:image/png;base64,iVBORw0KGgoAAA{AND SO ON}' , primary: '#C2FFAE' , secondary: '#C2FFAE' , stroke: '#000000' , strokeWidth: 3, innerStroke: null } |
可用的主题有:
- candy
- modern
- retro
- vim
- monochrome
- gameboy
- aerolab
你可以通过修改这些主题来制作更好的效果。
可用参数
Blockrain有很多参数可以帮助定制俄罗斯方块游戏:
{ autoplay: false , // Let a bot play the game autoplayRestart: true , // Restart the game automatically once a bot loses showFieldOnStart: true , // Show a bunch of random blocks on the start screen (it looks nice) theme: null , // The theme name or a theme object blockWidth: 10, // How many blocks wide the field is (The standard is 10 blocks) autoBlockWidth: false , // The blockWidth is dinamically calculated based on the autoBlockSize. Disabled blockWidth. Useful for responsive backgrounds autoBlockSize: 24, // The max size of a block for autowidth mode difficulty: 'normal' , // Difficulty (normal|nice|evil). speed: 20, // The speed of the game. The higher, the faster the pieces go. // Copy playText: 'Let\'s play some Tetris' , playButtonText: 'Play' , gameOverText: 'Game Over' , restartButtonText: 'Play Again' , scoreText: 'Score' , // Basic Callbacks onStart: function (){}, onRestart: function (){}, onGameOver: function (score){}, // When a line is made. Returns the number of lines, score assigned and total score onLine: function (lines, scoreIncrement, score){} } |
方法
Blockrain有很多实用的控制游戏的方法。$game 代表你的游戏对象选择器(例如:$(‘.game’))。
// Start the game $game.blockrain( 'start' ); // Restart the game $game.blockrain( 'restart' ); // Trigger a game over $game.blockrain( 'gameover' ); // Pause $game.blockrain( 'pause' ); // Resume $game.blockrain( 'resume' ); // Enable or Disable Autoplay (true|false) $game.blockrain( 'autoplay' , true ); // Enable or Disable Controls (true|false) $game.blockrain( 'controls' , true ); // Change the theme. // You can provide a theme name... $game.blockrain( 'theme' , 'vim' ); // Or a theme object. **Check out src/blockrain.jquery.themes.js** for examples. $game.blockrain( 'theme' , { background: '#ffffff' , primary: '#ff7b00' , secondary: '#000000' }); // Return the current score var score = $game.blockrain( 'score' ); |
更多详细内容请参考:https://github.com/Aerolab/blockrain.js