Mask - the liero clone

Finally I've rewritten my little engine so that it is in a presentable state. The list of things I've tried and changed is huge but in the end it turned out pretty stable. It's gonna take a while to transform this preview into a real game though and i'm not sure i'm up for it actually. This feels like a release to me because it's playable :)

Anyway what i need to do is roughly:
  • Add a menu for game setup and changing controls
  • Adding more weapons
  • Adding powerups
  • Implement some kind of sound support
  • Get new graphics


Here are the controls for both players. I just realized that the keys might be placed very tight. I'm using a split natural keyboard so it works for me.
ActionPlayer 1Player 2
WalkD,G,R,FLeft, Right, U, Down
Change WeaponQY
Ninja RopeQ+WY+U
DiggHold one direction and tap the other

You can also try experimenting with the mouse to add/remove ground and add particles.


If you're like me and running Sun HotSpot 64bit for Linux, there won't be any applet under this text :(
Run the game at the project site


The game can be started as an ordinary Java application as well, download the jar from:

JFreeChart Legend Arrangement

When i was working with JFreeChart i found no way to layout the items of the legend box the way i wanted. I had no choice but to write a custom Arrangement. If anyone knows of a better way please enlighten me.

ColumnFlowArrangement can layout on both the vertical and the horizontal axis. It works by specifying the width, in items, of the initial column. The column is filled with as many labels as there is room for, then a new column will be created with the same width. The arrangement works the same way for rows.

The names of the arguments in the class can be a bit confusing but I will fix this and add factory methods to increase readability when I find the time/energy.

The class can be found at:

jQuery floating table header plugin

A jQuery plugin that makes the header of a table floating if the original header isn't visible due to scrolling. The plugin will automatically choose the thead tag as the header for a table. If thead isn't found it will search for rows marked with the class 'floating'. The behavior can be changed by the settings forceClass and markingClass.


This plugin is no longer maintained by me and this page will therefore not be updated anymore.

Lazy loading of tables and performance optimations by Jason Axley


1.2.0! Fixed a few bugs and added reinit and recalculate functions to the table.

1.1.0! Better compatibility, better tested. There are still some problems with IE6 that i would like to have some help with.

1.0.7 is out! With all fixes made by Vasilianskiy Sergey. I've also removed class marking of table rows. Also the plugin doesn't clone the whole table, just thead.

1.0.6 is released with better compatibility with IE6/7. Big thanks to Glen for providing the patches!

1.0.5 is released! Compatibility issues with IE7 and IE8 are still there but since i've limited access to Windows it will take some time to fix them.

I've done some small changes and got the plugin to work with IE8 in all supported modes except (quirks mode). I will create a new release on jquery later today.


Just call floatHeader on a table in the page.

Configuration options

An optional configuration dictionary can be passed to the plugin. Accepted options are:
fadeOutThe length of the fade out animation in ms. Default: 250
faceInThe length of the face in animation in ms. Default: 250
forceClassForces the plugin to use the marker class when searching for a header instead of thead. Default: false
floatClassThe class of the div that contains the floating header. The style should contain an appropriate z-index value. Default: 'floatHeader'
markerClassThe class name that is used for marking which rows that should be floating. Default: floating
cbFadeOutA callback that is called when the floating header should be faded out. The method is called with the wrapped header as argument.
cbFadeInA callback that is called when the floating header should be faded in. The method is called with the wrapped header as argument.
recalculateRecalculate the column width on every scroll event.


The plugin defines two functions on the source table which can be called if the header is changed.
fhRecalculateRecalculated the column width of the floater.
fhInitRecreates the floater from the source table header.

Known issues and bug reporting

Please use the issue tracker on the project page at to view and report bugs.


Just want to acknowledge a few people who have contributed to the development.

Diego Arbelaez - Contributed code to support resize events.
Stephen J. Fuhry - A test case for huge tables and testing of the horizontal-scroll-bug.
Glenn Gilbert - Compatibility for IE6/7
Vasilianskiy Sergey - Lots of jQuery fixes

Download and demo

Files can be downloaded at:

A demo can be found at: