So I'm working on this really sweet HTML5 monster game, where you get to draw your own 8-bit style monsters and fight them against one another. So far I've only got a tiny bit of the monster creation part up and running. Don't worry I'll throw the whole thing up on on github when I'm done.
Anyway, one of the problems I ran into with the canvas was how to keep people's drawings within the predefined lines. The canvas is 500px wide and it's a 20x20 square of 25px blocks.
To create the lines it's very simple.
ctx = document.getElementById('monster').getContext('2d'); ctx.fillStyle = "black"; for (i = 25; i < 500; i = i + 25) { ctx.fillRect (i, 0, 1, 500); ctx.fillRect (0, i, 500, 1); }
That will draw some simple lines every 25px. Now how about keeping between the lines. It's simple. We just need to round our x, y to the nearest 25px, like so, that way it will always start inside one of our blocks. Then we'll actually be drawing 24px blocks to fit inside the lines completely.
I thought it was pretty neat!
var draw = false; window.onmousedown(function() { draw = true; }); window.onmouseup(function() { draw = false; }); document.getElementById('monster').onmousemove(function(e) { var x = e.clientX - offsetX, y = e.clientY - offsetY; x = Math.round(x / 25) * 25 + 1; y = Math.round(y / 25) * 25 + 1; if (draw) ctx.fillRect(x, y, 24, 24); // keep things in the lines });
p.s. follow the progress over at http://www.jamund.com/monsters
Nice How to Contact at&t wirless support is looking for such information all over the internet & finally my search end up here. thanks for sharing this wonderful article.
ReplyDelete