main.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. "use strict";
  2. var width = 30;
  3. var height = 15;
  4. LoadResources(function(images) {
  5. drawBoard(images);
  6. });
  7. function drawBoard(images) {
  8. var board = Board(width, height, "board");
  9. board.drawGrid();
  10. for (var y = 0; y < board.boardHeight; y++) {
  11. for (var x = 0; x < board.boardWidth; x++) {
  12. board.drawImage(images.water, x, y);
  13. }
  14. }
  15. board.drawImage(images.pinguin, 5, 5);
  16. board.drawImage(images.rock, 5, 7);
  17. board.drawImage(images.rock, 6, 7);
  18. board.drawImage(images.rock, 7, 6);
  19. board.drawImage(images.rock, 7, 5);
  20. board.drawImage(images.iglo, 25, 10);
  21. startGame(board);
  22. }
  23. function startGame(board) {
  24. console.log("start the game!");
  25. }
  26. function putHttp(url, callback) {
  27. var req = new XMLHttpRequest();
  28. req.addEventListener("load", callback);
  29. req.open("PUT", url);
  30. req.send();
  31. }
  32. function Board(width, height, canvasId) {
  33. var board_canvas = document.getElementById(canvasId);
  34. var context = board_canvas.getContext("2d");
  35. var tileSize = 20;
  36. return {
  37. boardWidth : width,
  38. boardHeight : height,
  39. tileWidth : tileSize,
  40. tileHeight : tileSize,
  41. width : width * tileSize,
  42. height : height * tileSize,
  43. context : context,
  44. drawGrid : function() {
  45. for (var x = 0; x <= this.width; x += this.tileWidth) {
  46. context.moveTo(x, 0);
  47. context.lineTo(x, this.height);
  48. }
  49. for (var y = 0; y <= this.height; y += this.tileHeight) {
  50. context.moveTo(0, y);
  51. context.lineTo(this.width, y);
  52. }
  53. context.strokeStyle = "#ddd";
  54. context.stroke();
  55. },
  56. drawImage : function(image, x, y) {
  57. context.drawImage(image, x*this.tileWidth, y*this.tileHeight);
  58. },
  59. }
  60. }
  61. function LoadResources(callback) {
  62. var pinguin = new Image(20, 20);
  63. var water = new Image(20, 20);
  64. var rock = new Image(20, 20);
  65. var iglo = new Image(20, 20);
  66. var resources = {
  67. pinguin : pinguin,
  68. water : water,
  69. rock : rock,
  70. iglo : iglo,
  71. }
  72. pinguin.onload = function () {
  73. water.onload = function (){
  74. rock.onload = function (){
  75. iglo.onload = function (){
  76. callback(resources);
  77. }
  78. }
  79. }
  80. }
  81. pinguin.src = "img/pinguin.png";
  82. water.src = "img/water.png";
  83. rock.src = "img/rock.png";
  84. iglo.src = "img/iglo.png";
  85. }