Board logo

標題: 20121013 [打印本頁]

作者: ray    時間: 2012-10-13 11:11     標題: 20121013

本帖最後由 ray 於 2012-10-13 11:37 編輯

按下該棋子變色,其他的復原
  1. <!DOCTYPE html>
  2. <head>
  3. <meta charset="utf-8">
  4. </head>
  5. <body>
  6. <div id="gameArea"><canvas id="gameCanvas"></canvas></div>
  7. <script>
  8. var gameHeight = window.innerHeight; //取得瀏覽器內容的高度,放進設定的遊戲視窗高度。
  9. var gameWidth = window.innerWidth; //取得瀏覽器內容的寬度,放進設定的遊戲視窗寬度。

  10. var gameArea = document.getElementById("gameArea"); //利用"gameArea"這個ID來取得該Div
  11. var gameCanvas = document.getElementById("gameCanvas"); //利用"gameCanvas"這個ID來取得該Canvas
  12. gameArea.style.height = gameHeight; //設定gameArea的高度為遊戲視窗高度
  13. gameArea.style.width = gameWidth; //設定gameArea的寬度為遊戲視窗寬度
  14. gameCanvas.height = gameHeight; //設定gameCanvas的高度為遊戲視窗高度
  15. gameCanvas.width = gameWidth; //設定gameCanvas的高度為遊戲視窗寬度
  16. gameCanvas.addEventListener("mousedown",doMouseDown,false);

  17. var x = 500;
  18. var y = 100;
  19. var r = 30;
  20. var d = 7;
  21. var balls = 7;

  22. function doMouseDown(event)
  23. {
  24.         //alert("x="+event.pageX+";y="+event.pageY);
  25.                 for(var i=0;i<balls;i++)
  26.                 {
  27.                 for(var j=0;j<=i;j++)
  28.                                 {
  29.                                         if(event.pageX > x-i*(r*2+d)/2+(r*2+d)*j-r && event.pageX < x-i*(r*2+d)/2+(r*2+d)*j+r && event.pageY > y+r*2*i-r && event.pageY < y+r*2*i+r)
  30.                         seats[i][j] = 1;
  31.                                         else
  32.                                                 seats[i][j] = 0;
  33.                                 }
  34.                 }
  35. }

  36. var ctx = gameCanvas.getContext("2d"); //取得gameCanvas的2D容器(Context)

  37. function clearScreen()
  38. {
  39.         ctx.fillStyle = "rgb(255,255,255)";
  40.         ctx.fillRect(0,0,gameWidth,gameHeight);
  41. }

  42. function drawArc(x,y,r,color)
  43. {
  44.         ctx.beginPath();
  45.         ctx.fillStyle = color;
  46.         ctx.arc(x,y,r,0,Math.PI*2,true);
  47.         ctx.fill();
  48. }

  49. var seats = new Array(balls);
  50. for(var i=0;i<balls;i++)
  51.         seats[i] = new Array(balls);

  52. function initGame()
  53. {
  54.         for(var i=0;i<balls;i++)
  55.                 for(var j=0;j<=i;j++)
  56.                         seats[i][j] = 0;
  57. }

  58. function gameLoop()
  59. {
  60.         clearScreen();
  61.         for(var i = 0;i <balls;i++)
  62.         {
  63.         for(var j=0;j<=i;j++)
  64.         {
  65.                 if(seats[i][j]==0)
  66.                         drawArc(x-i*(r*2+d)/2+(r*2+d)*j,y+r*2*i,r,"rgb(0,255,128)");
  67.                 else
  68.                         drawArc(x-i*(r*2+d)/2+(r*2+d)*j,y+r*2*i,r,"rgb(0,128,128)");
  69.                 }
  70.         }
  71.         
  72.         setTimeout(gameLoop,200);
  73. }        
  74. initGame();
  75. gameLoop();
  76. </script>
  77. </body>
複製代碼

作者: ray    時間: 2012-10-13 11:33

本帖最後由 ray 於 2012-10-13 11:36 編輯

按一次變深色,再按一次變回淺色
  1. <!DOCTYPE html>
  2. <head>
  3. <meta charset="utf-8">
  4. </head>
  5. <body>
  6. <div id="gameArea"><canvas id="gameCanvas"></canvas></div>
  7. <script>
  8. var gameHeight = window.innerHeight; //取得瀏覽器內容的高度,放進設定的遊戲視窗高度。
  9. var gameWidth = window.innerWidth; //取得瀏覽器內容的寬度,放進設定的遊戲視窗寬度。

  10. var gameArea = document.getElementById("gameArea"); //利用"gameArea"這個ID來取得該Div
  11. var gameCanvas = document.getElementById("gameCanvas"); //利用"gameCanvas"這個ID來取得該Canvas
  12. gameArea.style.height = gameHeight; //設定gameArea的高度為遊戲視窗高度
  13. gameArea.style.width = gameWidth; //設定gameArea的寬度為遊戲視窗寬度
  14. gameCanvas.height = gameHeight; //設定gameCanvas的高度為遊戲視窗高度
  15. gameCanvas.width = gameWidth; //設定gameCanvas的高度為遊戲視窗寬度
  16. gameCanvas.addEventListener("mousedown",doMouseDown,false);

  17. var x = 500;
  18. var y = 100;
  19. var r = 30;
  20. var d = 7;
  21. var balls = 7;

  22. function doMouseDown(event)
  23. {
  24.         //alert("x="+event.pageX+";y="+event.pageY);
  25.                 for(var i=0;i<balls;i++)
  26.                 {
  27.                 for(var j=0;j<=i;j++)
  28.                                 {
  29.                                         if(event.pageX > x-i*(r*2+d)/2+(r*2+d)*j-r && event.pageX < x-i*(r*2+d)/2+(r*2+d)*j+r && event.pageY > y+r*2*i-r && event.pageY < y+r*2*i+r)
  30.                     {
  31.                                                 if(seats[i][j] == 0)
  32.                                                         seats[i][j] = 1;
  33.                                                 else
  34.                                                         seats[i][j] = 0;
  35.                                         }
  36.                                 }
  37.                 }
  38. }

  39. var ctx = gameCanvas.getContext("2d"); //取得gameCanvas的2D容器(Context)

  40. function clearScreen()
  41. {
  42.         ctx.fillStyle = "rgb(255,255,255)";
  43.         ctx.fillRect(0,0,gameWidth,gameHeight);
  44. }

  45. function drawArc(x,y,r,color)
  46. {
  47.         ctx.beginPath();
  48.         ctx.fillStyle = color;
  49.         ctx.arc(x,y,r,0,Math.PI*2,true);
  50.         ctx.fill();
  51. }

  52. var seats = new Array(balls);
  53. for(var i=0;i<balls;i++)
  54.         seats[i] = new Array(balls);

  55. function initGame()
  56. {
  57.         for(var i=0;i<balls;i++)
  58.                 for(var j=0;j<=i;j++)
  59.                         seats[i][j] = 0;
  60. }

  61. function gameLoop()
  62. {
  63.         clearScreen();
  64.         for(var i = 0;i <balls;i++)
  65.         {
  66.         for(var j=0;j<=i;j++)
  67.         {
  68.                 if(seats[i][j]==0)
  69.                         drawArc(x-i*(r*2+d)/2+(r*2+d)*j,y+r*2*i,r,"rgb(0,255,128)");
  70.                 else
  71.                         drawArc(x-i*(r*2+d)/2+(r*2+d)*j,y+r*2*i,r,"rgb(0,128,128)");
  72.                 }
  73.         }
  74.         
  75.         setTimeout(gameLoop,200);
  76. }        
  77. initGame();
  78. gameLoop();
  79. </script>
  80. </body>
複製代碼

作者: ray    時間: 2012-10-13 11:51

在棋子上面畫上字
  1. <!DOCTYPE html>
  2. <head>
  3. <meta charset="utf-8">
  4. </head>
  5. <body>
  6. <div id="gameArea"><canvas id="gameCanvas"></canvas></div>
  7. <script>
  8. var gameHeight = window.innerHeight; //取得瀏覽器內容的高度,放進設定的遊戲視窗高度。
  9. var gameWidth = window.innerWidth; //取得瀏覽器內容的寬度,放進設定的遊戲視窗寬度。

  10. var gameArea = document.getElementById("gameArea"); //利用"gameArea"這個ID來取得該Div
  11. var gameCanvas = document.getElementById("gameCanvas"); //利用"gameCanvas"這個ID來取得該Canvas
  12. gameArea.style.height = gameHeight; //設定gameArea的高度為遊戲視窗高度
  13. gameArea.style.width = gameWidth; //設定gameArea的寬度為遊戲視窗寬度
  14. gameCanvas.height = gameHeight; //設定gameCanvas的高度為遊戲視窗高度
  15. gameCanvas.width = gameWidth; //設定gameCanvas的高度為遊戲視窗寬度
  16. gameCanvas.addEventListener("mousedown",doMouseDown,false);

  17. var x = 500;
  18. var y = 100;
  19. var r = 30;
  20. var d = 7;
  21. var balls = 7;

  22. function doMouseDown(event)
  23. {
  24.         //alert("x="+event.pageX+";y="+event.pageY);
  25.                 for(var i=0;i<balls;i++)
  26.                 {
  27.                 for(var j=0;j<=i;j++)
  28.                                 {
  29.                                         if(event.pageX > x-i*(r*2+d)/2+(r*2+d)*j-r && event.pageX < x-i*(r*2+d)/2+(r*2+d)*j+r && event.pageY > y+r*2*i-r && event.pageY < y+r*2*i+r)
  30.                     {
  31.                                                 if(seats[i][j] == 0)
  32.                                                         seats[i][j] = 1;
  33.                                                 else
  34.                                                         seats[i][j] = 0;
  35.                                         }
  36.                                 }
  37.                 }
  38. }

  39. var ctx = gameCanvas.getContext("2d"); //取得gameCanvas的2D容器(Context)

  40. function clearScreen()
  41. {
  42.         ctx.fillStyle = "rgb(255,255,255)";
  43.         ctx.fillRect(0,0,gameWidth,gameHeight);
  44. }

  45. function drawArc(x,y,r,color)
  46. {
  47.         ctx.beginPath();
  48.         ctx.fillStyle = color;
  49.         ctx.arc(x,y,r,0,Math.PI*2,true);
  50.         ctx.fill();
  51. }

  52. var seats = new Array(balls);
  53. for(var i=0;i<balls;i++)
  54.         seats[i] = new Array(balls);

  55. function initGame()
  56. {
  57.         for(var i=0;i<balls;i++)
  58.                 for(var j=0;j<=i;j++)
  59.                         seats[i][j] = 0;
  60. }

  61. function gameLoop()
  62. {
  63.         clearScreen();
  64.         for(var i = 0;i <balls;i++)
  65.         {
  66.                         for(var j=0;j<=i;j++)
  67.                         {
  68.                                         if(seats[i][j]==0)
  69.                                                         drawArc(x-i*(r*2+d)/2+(r*2+d)*j,y+r*2*i,r,"rgb(0,255,128)");
  70.                                         else
  71.                                         {
  72.                                                         drawArc(x-i*(r*2+d)/2+(r*2+d)*j,y+r*2*i,r,"rgb(0,128,128)");
  73.                                                         ctx.fillStyle = "rgb(0,0,0)";
  74.                                                         ctx.font = "italic bold 30px sans-serif";
  75.                                                         ctx.textBaseline = "bottom";
  76.                                                         ctx.fillText(seats[i][j],x-i*(r*2+d)/2+(r*2+d)*j-r/2,y+r*2*i+r/2);
  77.                                         }
  78.                         }
  79.                           
  80.                 }
  81.         
  82.         setTimeout(gameLoop,200);
  83. }        
  84. initGame();
  85. gameLoop();
  86. </script>
  87. </body>
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2