<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      AlloyRenderingEngine之Shape

      2015-04-23 16:49  【當(dāng)耐特】  閱讀(1079)  評(píng)論(0)    收藏  舉報(bào)

      寫(xiě)在前面

      不讀文章,只對(duì)代碼感興趣可以直接跳轉(zhuǎn)到這里 https://github.com/AlloyTeam/AlloyGameEngine
      然后star一下,多謝支持:)。

      游戲或者應(yīng)用中,不是所有的地方都是貼圖,Shape 也有很常見(jiàn)的應(yīng)用場(chǎng)景,如游戲中顯示HP的血條。大量的Shape可以組成矢量圖。矢量圖的好處是放大不失真,也就是不會(huì)變模糊;而位圖放大失真,失真的程度要看其平臺(tái)插值算法的牛B程度,但放大效果越好的算法,速度越慢,所以大部分平臺(tái)會(huì)在速度和效果上取個(gè)折中。

      繪制Shape根繪制位圖本質(zhì)不一樣,繪制位圖可以充分利用GPU渲染(當(dāng)然也可以不用),繪制Shape必須經(jīng)過(guò)CPU先進(jìn)行數(shù)學(xué)計(jì)算和圖形學(xué)相關(guān)算法(比如你可以嘗試不使用api,而使用點(diǎn)去繪制貝塞爾曲線、圓形、線條等,你做的所有數(shù)學(xué)工作,就是計(jì)算機(jī)做的工作),然后再進(jìn)行渲染。所以很顯然,繪制大量的Shape會(huì)造成幀率下降。

      那么又想使用Shape,又不想降低幀率怎么辦?

      繪制Shape和繪制圖片又不沖突。Shape可以轉(zhuǎn)成圖片進(jìn)行渲染,跟Shape類(lèi)似的還有文字,文字也可以轉(zhuǎn)成圖片再進(jìn)行繪制以提高繪制幀率,意思就是:
      1.經(jīng)過(guò)CPU先進(jìn)行數(shù)學(xué)計(jì)算和圖形學(xué)相關(guān)算法
      2.渲染至某個(gè)備份Canvas
      3.以后游戲或者應(yīng)用中的core loop直接把備份Canvas繪制上去,而不用去重新計(jì)算
      4.當(dāng)Shape有更改的時(shí)候才去更新備份Canvas

      這里需要注意的是:必須知道Shape所占據(jù)的寬高。

      Shape類(lèi)

      AlloyRenderingEngine內(nèi)置了Shape類(lèi)用于繪制幾何形狀。
      其API設(shè)計(jì)與命名也Canvas的Context2d的一致,不同在與:
      1.使用了連綴的方法調(diào)用方式,
      2.最后要調(diào)用end()結(jié)尾
      3.需要增加到舞臺(tái)

      如入畫(huà)一個(gè)圓:

      (function (ARE) {
          var Stage = ARE.Stage, Shape = ARE.Shape;
          var stage = new Stage("#ourCanvas");
          var shape = new Shape(73, 76);
          shape.beginPath().arc(10,10,20, 0, Math.PI * 2).fill().end();
          stage.add(shape);
      })(ARE);

      可以看到,創(chuàng)建Shape的實(shí)例需要傳兩個(gè)參數(shù),一個(gè)代表寬,一個(gè)代表高。具體為什么要傳這兩個(gè)參數(shù),請(qǐng)從文章開(kāi)頭重新讀一遍:)。
      以此類(lèi)推。其他的方法還有:moveTo、lineTo、bezierCurveTo、stroke、fillStyle、fillRect、clear、clearRect等…

      而shape也擁有scale、scaleX、scaleY、skewX、skewY、rotation、x、y、alpha等屬性

      舉個(gè)栗子(鼠標(biāo)放在球上然后滾動(dòng)你的滾輪試試)

      再舉個(gè)栗子(鼠標(biāo)放在老虎上然后滾動(dòng)你的滾輪試試)

      滾輪事件怎么搞滴?

      stage.onMouseWheel(function (evt) {
          if (evt.delta > 0) {
              shape.scale += 0.05;
          } else {                    
              shape.scale -= 0.05;
          }
      }) 

       簡(jiǎn)單吧!

      Github

      https://github.com/AlloyTeam/AlloyGameEngine
      據(jù)說(shuō)star一下不會(huì)懷孕= =!多謝支持:)!

      主站蜘蛛池模板: 国产日韩综合av在线| 国内自拍小视频在线看| av综合网男人的天堂| 国产亚洲一级特黄大片在线| 2021国产成人精品久久| 色吊丝二区三区中文写幕| 亚洲欧美v国产蜜芽tv| 亚洲老熟女一区二区三区 | 极品无码国模国产在线观看| 亚洲午夜福利AV一区二区无码| 精品无码一区二区三区水蜜桃| 俄罗斯老熟妇性爽xxxx| 开心激情站一区二区三区| 亚洲中文字幕人妻系列| 久久精品国产99亚洲精品| 美女黄网站人色视频免费国产| 自偷自拍亚洲综合精品| 蓬安县| 久青草视频在线视频在线| 国产一区二区三区导航| 夜夜影院未满十八勿进| 精品一日韩美女性夜视频| 国产乱码精品一区二三区| 蜜桃av亚洲第一区二区| 聊城市| 欧美成本人视频免费播放| 国产成人精品亚洲午夜| 97av麻豆蜜桃一区二区| 日韩精品一区二区三区激情 | 无码中文字幕av免费放| 九色国产精品一区二区久久 | 麻豆国产传媒精品视频| 久久精品国产一区二区三| 成人性生交片无码免费看| 大肉大捧一进一出好爽视频mba | 国产成人欧美一区二区三区在线| 香港特级三A毛片免费观看| 中文字幕无码不卡在线| 国产一区二区精品久久呦| 亚洲国产精品人人做人人爱| 欧美成人aaa片一区国产精品|