努力,成長,提高

          在追求中進步
          數據加載中……

          2010年6月6日

          html5 基于canvas的基礎類設計

          先給大家看一個demo
          http://www.koooi.com/html5/
          代碼很簡單
          頁面上面加一個<canvas style="border:1px solid" id="canvas" width="1000" height="800">
                      <p>
                          Your browser does not support the canvas element.
                      </p>
                  </canvas>
          然后javascript中寫上

          var canvas = null;
          var ctx = null;
          var score = 0;
          var num = 51;
          function getRandomInt(a, b){
              
          return Math.floor(Math.random() * (b - a + 1)) + a;
              
          }

          window.onload 
          = init;

          function init(){
              canvas 
          = document.getElementById('canvas');
              scoreID 
          = document.getElementById('score');
              ctx 
          = canvas.getContext('2d');
              
          //    setInterval(draw, 1000 / FPS);
              
              controller 
          = new ERIC.CanvasController(ctx, canvas.width, canvas.height);
              controller.animateStopBySignal();
              canvas.onclick 
          = function(e){
                  
          var mousex = e.clientX;
                  
          var mousey = e.clientY;
                  
          var relativex = mousex - canvas.offsetLeft;
                  
          var relativey = mousey - canvas.offsetTop;
                  
          var len = controller.canvasObjectList.length;
                  
          var infig = false;
                  
          for (i = len - 1; i >= 0; i--) {
                      
          if (controller.canvasObjectList[i].isInFigure(relativex, relativey)) {
                          score 
          = score + 10;
                          infig 
          = true;
                          controller.canvasObjectList[i].removeFromControl();
                      }
                  }
                  
          if (!infig) {
                      score 
          = score - 10;
                  }
                  scoreID.innerHTML 
          = score;
              }
              
              ERIC.run(
          function test(){
                  
          var t = getRandomInt(00);
                  
          if (t == 0) {
                      num
          --;
                      
          if(num==0){
                          ERIC.stop();
                          
          return;
                      }
                      
          var cir1 = new ERIC.Circle(getRandomInt(70930), getRandomInt(70730), 5);
                      cir1.setTriggerDelete(
          function(){
                          
          return this.radius >= 40;
                      });
                      cir1.setAction(
          function(){
                          
          this.radius = this.radius + 1;
                      });
                      controller.add(cir1);
                  }
              }, 
          400);
          }

          很簡單的代碼,利用了我寫的基礎類ERIC.Circle Eric.CanvasController 以及ERIC.Run
          使用簡介:
          1.先實例化ERIC.
          CanvasController,假設實例名字controller
          2.實例化一個ERIC.BasicFigure類的子類的對象,現在EricUtils.js只提供了一個擴展類Circle,假設實例名字為cir
          3.設置cir實例的動作和刪除的條件。動作意思是每一個動畫要執行什么操作,比如圓的半徑加1, 或者圓心移動。刪除的條件比如半徑大于50就從畫布當中刪除掉,不再顯示這個圓。
          cir1.setTriggerDelete(function(){
                          return this.radius >= 40;
                      });
                      cir1.setAction(function(){
                          this.radius = this.radius + 1;
                      });
          4.把cir添加到controller中。controller.add(cir)
          5.調用controller.animate(); 此方法會以每秒30幀來畫出cir對象,每幀結束執行cir在第三步設置的動作。到達刪除條件會刪除掉該object,直到沒有object在controller當中。
          6.也可以調用controller.animateStopBySignal()方法,動作和5相同,但是會一直進行渲染,這樣適合于臨時添加object到controller當中,添加進去以后馬上就可以被渲染,直到滿足被刪除的條件。渲染結束需要調用controller.signalStop()

          基礎類下載地址http://www.koooi.com/html5/js/EricUtils.js
          當然,這只是一個框架,以后要添加更多的功能,如果您對于html5有興趣,打算和我一起來開發,歡迎聯系我
          希望可以起到拋磚引玉的作用。
          QQ627四23四四三

          posted @ 2010-06-13 02:07 孔陽 閱讀(1933) | 評論 (0)編輯 收藏
          用JAVA實現AI

               摘要: 從小就有一個夢想,將來開發機器人,說白了,就是人工智能?,F在看來,可喜的是,做的是軟件這行,還有點可行性,可惜的是,做的工作與人工智能不搭嘎,工作又太累,天天加班不說,大老遠跑回家,就沒那么多時間去思考,學習人工智能了。徘徊猶豫了幾個月,一直沒有決心去寫代碼,這不,終于決定繼續小時候的夢想,開始了用java實現人工智能的第一步了,那就是用java來分析語義,讓我們從頭開始。 我的第一個Miles...  閱讀全文

          posted @ 2010-06-06 23:59 孔陽 閱讀(7875) | 評論 (5)編輯 收藏
          主站蜘蛛池模板: 邢台县| 同心县| 巴楚县| 大化| 安远县| 绥德县| 车险| 昭苏县| 密云县| 金塔县| 博罗县| 通城县| 丹巴县| 筠连县| 汶上县| 泌阳县| 长白| 富川| 广安市| 安国市| 兴宁市| 扬中市| 巨鹿县| 平江县| 石棉县| 曲阳县| 高密市| 子长县| 阿克| 潞城市| 澄迈县| 阜阳市| 沿河| 庄河市| 武清区| 高淳县| 海林市| 招远市| 枣强县| 武山县| 汝州市|