Guest User

Untitled

a guest
May 24th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. #canvas {
  5. border: 1px solid black;
  6. }
  7. </style>
  8. <script type="application/javascript">
  9. // key codes / directions
  10. var left = 37,
  11. up = 38,
  12. right = 39,
  13. down = 40;
  14.  
  15. var direction = null;
  16.  
  17. document.onkeydown = function(ev) {
  18. switch(ev.keyCode) {
  19. case left:
  20. case up:
  21. case right:
  22. case down:
  23. direction = ev.keyCode;
  24. break;
  25.  
  26. default:
  27. direction = null;
  28. break;
  29. }
  30.  
  31. if (direction) return false;
  32. }
  33.  
  34. document.onkeyup = function(ev) {
  35. direction = null;
  36. }
  37.  
  38. function draw(ctx, me) {
  39. ctx.beginPath();
  40.  
  41. // clear drawing area
  42. ctx.clearRect(0,0,500,500);
  43. ctx.fillStyle = '#ffffff';
  44. ctx.strokeStyle = '#000000';
  45. ctx.fillRect(0,0,500,500);
  46.  
  47. // draw me and fill me in
  48. ctx.rect(me.x,me.y,5,5);
  49.  
  50. ctx.fillStyle = '#000000';
  51. ctx.fill();
  52.  
  53. ctx.stroke();
  54.  
  55. ctx.closePath();
  56.  
  57. var x_diff = 0;
  58. if (direction == left) x_diff = -1;
  59. if (direction == right) x_diff = 1;
  60.  
  61. var y_diff = 0;
  62. if (direction == down) y_diff = 1;
  63. if (direction == up) y_diff = -1;
  64.  
  65. var me_next = {
  66. x: (me.x+x_diff > 0 && me.x+x_diff < 500) ? me.x+(5*x_diff) : me.x,
  67. y: (me.y+y_diff > 0 && me.y+y_diff < 500) ? me.y+(5*y_diff) : me.y
  68. };
  69.  
  70. setTimeout(function(){draw(ctx, me_next)}, 25);
  71. }
  72.  
  73. function init() {
  74. var canvas = document.getElementById("canvas");
  75. var ctx = canvas.getContext("2d");
  76.  
  77. var me = {x:250, y:250};
  78.  
  79. draw(ctx, me);
  80. }
  81. </script>
  82. </head>
  83. <body onload="init()">
  84. <canvas id="canvas" width="500" height="500"></canvas>
  85. </body>
  86. </html>
Add Comment
Please, Sign In to add comment