Guest User

Untitled

a guest
Sep 24th, 2014
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.51 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. </head>
  5. <body>
  6. <canvas id="canvas" width="640" height="640" style="border: #000 1px dotted"></canvas>
  7. <script type="text/javascript">
  8. window.onload = function(){
  9. window.addEventListener('keydown', function(ev){
  10. switch(ev.keyCode){
  11. case 37: Player.moveLeft(); break;
  12. case 38: Player.moveTop(); break;
  13. case 39: Player.moveRight(); break;
  14. case 40: Player.moveBottom(); break;
  15. }
  16. });
  17. }
  18. var canvas = document.getElementById('canvas'),
  19. context = canvas.getContext('2d');
  20.  
  21. var map = [
  22. [1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1],
  23. [1,0,1,0,1,1,0,0,0,1,0,1,0,1,0,1],
  24. [1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,1],
  25. [1,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1],
  26. [1,1,1,1,1,0,1,1,0,0,0,0,0,1,0,1],
  27. [1,0,0,0,0,0,1,0,0,1,0,1,1,0,0,1],
  28. [1,0,1,1,1,1,1,0,1,1,0,0,1,0,1,1],
  29. [1,0,0,0,0,1,1,0,1,1,0,1,0,0,0,1],
  30. [1,0,1,1,1,1,0,0,0,1,1,0,0,1,0,1],
  31. [1,0,1,0,0,0,0,1,0,0,0,0,1,1,0,1],
  32. [1,0,1,0,1,1,1,1,1,1,0,1,0,0,0,1],
  33. [1,0,1,0,1,1,0,0,0,0,0,0,0,1,1,1],
  34. [1,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1],
  35. [1,1,1,1,1,1,0,0,0,1,0,1,0,1,0,1],
  36. [1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1],
  37. [1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
  38. ];
  39.  
  40. var sprite = {
  41. w: 40,
  42. h: 40
  43. };
  44.  
  45. var spriteHandlers = {
  46. drawFloor: function(x, y){
  47. context.fillStyle = '#CCC';
  48. context.fillRect(x * sprite.w, y * sprite.h, sprite.w, sprite.h);
  49. },
  50. drawWall: function(x, y){
  51. context.fillStyle = '#000';
  52. context.fillRect(x * sprite.w, y * sprite.h, sprite.w, sprite.h);
  53. }
  54. };
  55.  
  56. var spriteHandlersMap = {
  57. 0: spriteHandlers.drawFloor,
  58. 1: spriteHandlers.drawWall,
  59. //3: drawPlayer,
  60. };
  61.  
  62.  
  63.  
  64.  
  65.  
  66. function drawMapSprite(id, x, y){
  67. spriteHandlersMap[id](x,y);
  68. }
  69.  
  70.  
  71. function mapRender(){
  72. for(var i = 15; i >= 0; --i){
  73. for(var j = 15; j >= 0; --j){
  74. drawMapSprite(map[i][j], j, i);
  75. }
  76. }
  77. }
  78.  
  79. function play(){
  80. context.fillStyle = '#000';
  81. context.fillRect(0,0,640,640);
  82. mapRender();
  83. Player.draw();
  84. setTimeout(play, 1000 / 20);
  85. }
  86.  
  87. var Player = {
  88. position: {
  89. x: 1,
  90. y: 15
  91. },
  92. moveLeft: function(){
  93. var newPos = {
  94. x: Player.position.x-1,
  95. y: Player.position.y
  96. }
  97. if(newPos.x > 0 && newPos.x < 16 && newPos.y > 0 && newPos.y < 16){
  98. Player.position = newPos;
  99. }
  100. },
  101. moveTop: function(){
  102. var newPos = {
  103. x: Player.position.x,
  104. y: Player.position.y-1
  105. }
  106. if(newPos.x > 0 && newPos.x < 16 && newPos.y > 0 && newPos.y < 16){
  107. Player.position = newPos;
  108. }
  109. },
  110. moveRight: function(){
  111. var newPos = {
  112. x: Player.position.x+1,
  113. y: Player.position.y
  114. }
  115. if(newPos.x > 0 && newPos.x < 16 && newPos.y > 0 && newPos.y < 16){
  116. Player.position = newPos;
  117. }
  118. },
  119. moveBottom: function(){
  120. var newPos = {
  121. x: Player.position.x,
  122. y: Player.position.y+1
  123. }
  124. if(newPos.x > 0 && newPos.x < 16 && newPos.y > 0 && newPos.y < 16){
  125. Player.position = newPos;
  126. }
  127. },
  128. draw: function(){
  129. context.strokeStyle = '#ffa500';
  130. context.fillStyle = '#ffa500';
  131. context.arc(Player.position.x*sprite.w+sprite.w/2, Player.position.y*sprite.h+sprite.h/2, sprite.w/2, 0, 2 * Math.PI, true);
  132. context.fill();
  133. context.closePath();
  134. },
  135. };
  136.  
  137.  
  138. //mapRender();
  139. play();
  140.  
  141.  
  142.  
  143. </script>
  144. </body>
  145. </html>
Advertisement
Add Comment
Please, Sign In to add comment