zoukankan      html  css  js  c++  java
  • HTML5游戏开发引擎,初识CreateJS

    CreateJS为CreateJS库,可以说是一款为HTML5游戏开发的引擎。打造 HTML5 游戏,构建新游戏,提供构建最新 HTML5 的技术、你可以通过这个网站学习如何构建跨平台和跨终端游戏。这个资源库还会告诉你如何构建多人在线游戏。CreateJS 是一套可以构建丰富交互体验的 HTML5 游戏的开源工具包,旨在降低 HTML5 项目的开发难度和成本,让开发者以熟悉的方式打造更具现代感的网络交互体验。

    HTML5游戏开发的引擎,初识CreateJS
    v准备工作

    1.进入createjs首页 

    首页有几个tab页,有EASEJS、TweenJS、SoundJS、PrloadJS、ZOE五种.(最新的官网好像没有ZOE的tab页了,不过在http://createjs.com/downloads下载页面的最下面还是可以找到下载的。)
    • EASEJS:用来处理HTML5的canvas
    • TWEENJS:用来处理HTML5的动画调整和javascript属性
    • SOUNDJS:用来帮助简化处理音频相关的API
    • PRELOADJS:管理和协调程序加载项的类库
    • ZOE:将SWF动画导出为EaseIJS的sprite的工具
    基于这些库,可以非常快捷地开发出基于HTML5的游戏、动画和交互应用。运行环境请使用Safari, Chrome, Firefox 或者 IE 9+ 。 HTML5游戏开发的引擎,初识CreateJS

    2.首页解析: 

    3.进入下载页:http://createjs.com/downloads 

    HTML5游戏开发的引擎,初识CreateJS
    因为这篇博客主要介绍HTML5游戏开发的引擎canvas,所以我们下载EASEJS就可以了。

    4.帮助文档: 

    HTML5游戏开发的引擎,初识CreateJS 
    帮助文档里有很多类的介绍,还有对应类的方法、属性、事件的介绍。不过是英文版本的,暂时还没有找到比较好的中文的版本。ps:如果英文比较差的园友,那就只能用web工具强硬翻译了。具体web工具翻译页面的方法可以看我之前的一篇博客:谷歌/微软/必应web页面免费翻译插件

    5.引入主要JS: 

    HTML5游戏开发的引擎,初识CreateJS
    这个文件是我们需要引入的js文件。
    v简单demo

    1.html代码: 

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>First Canvas for CNBlogs</title>
        <script src="EaselJS-0.8.1/lib/easeljs-0.8.1.min.js"></script>
    </head>
    <body>
        <canvas id="canvas" width="500" height="500"></canvas>
        <script src="Scripts/Index.js"></script>
    </body>
    </html>

    2.js代码: 

    var canvas;
    var stage;
    var txt;
    var count = 0;
    window.onload = function () {
        canvas = document.getElementById("canvas");
    
        // 创建一个舞台对象
        stage = new createjs.Stage(canvas);
        txt = new createjs.Text("Hello CNBlogs->", "20px Arial", "#ff7700");
        stage.addChild(txt);
    
        createjs.Ticker.addEventListener("tick", tick);
    }
    
    function tick(e)
    {
        count++;
        txt.text = "Hello CNBlogs->" + count + "☺";
        stage.update();
    }

    3.运行效果: 

    HTML5游戏开发的引擎,初识CreateJS
    v鼠标经过特效

    1.html代码: 

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>First Canvas for CNBlogs</title>
        <script src="EaselJS-0.8.1/lib/easeljs-0.8.1.min.js"></script>
    </head>
    <body>
        <canvas id="canvas" style="border:1px #000 solid;" width="1000" height="500"></canvas>
        <script src="Scripts/Flash.js"></script>
    </body>
    </html>

    2.js代码: 

    var canvas;
    var stage;
    var img = new Image();
    var sprite;
    window.onload = function () {
        canvas = document.getElementById("canvas");
        // 创建一个舞台对象
        stage = new createjs.Stage(canvas);
        stage.addEventListener("stagemousedown", clickCanvas);
        stage.addEventListener("stagemousemove", moveCanvas);
        var data = {
            images: ["cnblogsLogo.png"],
            frames: {  20, height: 20, regX: 10, regY: 10 }
        }
      
        // 关于EaselJS的一些属性或者方法大家可以根据对应的api文档熟悉熟悉。
        //例如Sprite可以在这里找到
        // file:.../EaselJS-0.8.1/docs/EaselJS_docs-0.8.1/classes/Sprite.html
        sprite = new createjs.Sprite(new createjs.SpriteSheet(data));
        createjs.Ticker.setFPS(20);
        createjs.Ticker.addEventListener("tick", tick);
    }
    
    function tick(e) {
        var t = stage.getNumChildren();
        for (var i = t-1; i >0; i--) {
            var st = stage.getChildAt(i);
    
            // 设置单位帧的位置
            st.vY += 2;
            st.vX += 1;
            st.x += st.vX;
            st.y += st.vY;
    
            // 设置大小变形
            st.scaleX = st.scaleY = st.scaleX + st.vS;
            // 设置透明度
            st.alpha += st.vA;
            if (st.alpha <= 0 || st.y > canvas.height) {
                // 如果超标则移除当前的
                stage.removeChildAt(i);
            }
        }
    
        // 每做一次操作,需要对舞台一次更新
        stage.update(e);
    }
    
    function clickCanvas(e) {
        // 设置鼠标点击出现的图案多
        addS(Math.random() * 200 + 100, stage.mouseX, stage.mouseY, 2);
    }
    
    function moveCanvas(e) {
        // 设置鼠标经过出现的图案少
        addS(Math.random() * 2 + 10, stage.mouseX, stage.mouseY, 1);
    }
    
    // addS方法中所有小数或者随机数都是可以根据具体需求随意设置的,
    function addS(count,x,y,speed) {
        for (var i = 0; i < count; i++) {
            // 关于sprite.clone方法文档的介绍是,返回的是序列的实例,
            // 所以每个实例对象都可以用这个方法控制
            var sp = sprite.clone();
            // 设置图标出现位置
            sp.x = x;
            sp.y = y;
            // 利用随机数控制图标随机亮度
            sp.alpha = Math.random() * 0.5 + 0.5;
            // 设置大小
            sp.scaleX = sp.scaleY = Math.random() + 0.3;
    
            // 设置曲线
            var a = Math.PI * 2 * Math.random();
    
            //设置速度
            var v = (Math.random() - 0.5) * 30 * speed;
            sp.vX = Math.cos(a) * v;
            sp.vY = Math.sin(a) * v;
            sp.vS = (Math.random() - 0.5) * 0.2; // scale
            sp.vA = -Math.random() * 0.05 - 0.01;// alpha
            stage.addChild(sp);
        }
    }

    3.运行效果: 

    HTML5游戏开发的引擎,初识CreateJS

    4.源码下载: 

    v博客总结

    对于HTML5优秀的JS类库或者是引擎框架还有很多,如果你有什么好的可以拿出来分享一下。


    作  者:请叫我头头哥
    出  处:http://www.cnblogs.com/toutou/
    关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!
    版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
    特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信
    声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!

  • 相关阅读:
    敏捷开发设计模式的五大原则(读敏捷软件开发:原则、模式与实践笔记记录一下)
    使用AOP和Semaphore对项目中具体的某一个接口进行限流
    java正则使用全记录!
    推荐一本书学习springcloud书籍的SpringCloud微服务全栈技术与案例解析
    使用springboot Admin 2.0.6版本 集成监控springcloud微服务应用
    推荐一本学习Groovy的书籍Groovy程序设计!
    Datagrip 快捷键和常用插件持续更新一集一些使用技巧
    Eclipse中项目不会自动编译问题的坑和注意点
    使用Groovy的mixin方法注入,和mixedIn属性实现过滤链
    vscode常用快捷键和插件(持续更新),以及一些常用设置的坑和技巧
  • 原文地址:https://www.cnblogs.com/toutou/p/4919027.html
Copyright © 2011-2022 走看看