最近网页游戏比较火,以前做过一些小游戏,但是过段时间就都忘了,今天在这里记录一下学习过程,以备后用。
做网页游戏有很多种框架,我是flash程序用Adobe出品的CreateJS最容易。基本上继承了flash的大概框架像stage,MovieClip,显示列表等等。
CreateJS是什么?
CreateJS 中包含五款工具:
EaselJS:用于 Sprites、动画、向量和位图的绘制,创建 HTML5 Canvas 上的交互体验(包含多点触控),同时提供 Flash 中的“显示列表”功能。
TweenJS:一个简单的用于制作类似 Flash 中“补间动画”的引擎,可生成数字或非数字的连续变化效果。
SoundJS:一个音频播放引擎,能够根据浏览器性能选择音频播放方式。将音频文件作为模块,可随时加载和卸载。
PrloadJS:帮助你简化网站资源预加载工作,无论加载内容是图形、视频、声音、JS、数据……
官网地址:

CreateJS怎么来的?
从2008年以来HTML5标准就一直修订,修订,修订。当时的目的就是为了加强网页的表现能力。一经推出就一发不可收拾的改到现在。其中最具魅力的就是Canvas标签,这个标签让网页制作复杂的矢量图能为可能。随着移动端智能手机,各种pad的流行Canvas的前程一片光明。虽然Canvas标准出来了,但是毕竟是制定框架只定义了基本的接口,用官方的API做动画和游戏费时费力,不是一般人能够接受的。随后各种基于Canvas的框架如雨后春笋般的出现了。今天的主角CreateJS也就应景而生。CreateJS应用最多的地方应该是Flash转换Canvas,从以前的Toolkit 工具箱到现在的cs CC直接集成转换工具。下面讲讲HTML5的核心之一Canvas。

Canvas能干什么
Canvas 直译为 画布 当然就做动画,作画板用的。理论上说flash能干什么Canvas就能干什么。但是作为一个新的标准,缺点也是很明显的。
首先兼容性问题:IE9以下都不支持,光这一点Canvas想要流行起来至少的5年或者更长时间(IE6是2001年10月面世,至今已经10多年了依然僵而不死)。
其次更严重的兼容问题:硬件加速WebGL虽然出来时间不短了,但是也只有最新的浏览器才能支持。致命的是IE现在所有版本都不支持(好消息是前两天微软宣布加入WebGL标准)。
说完缺点再说说优点
Canvas代表了网页的未来!够唬人吧,的确如此。虽然现在有很多问题,性能也相当于flash的10年前的水平,毕竟是不用插件就可以全平台运行,而且越来越多的技术会向这里靠拢。靠着互联网这面大旗,前面的路会越来越宽。我个人认为现阶段完美的动画解决方案是PC端Flash+移动端Canvas。

Canvas怎么用
以上都是废话,上代码。
最最最基础初始化

  1. <!DOCTYPE >
  2. <html >
  3. <head>
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5. <title>{M}</title>
  6. <style>
  7. body,canvas{margin:0;padding:0;}
  8. </style>
  9. </head>
  10. <body >
  11. <script>
  12.  
  13. var canvas
  14. var context
  15. //初始化
  16. function init(){
  17. canvas = document.createElement("canvas");//创建画布
  18. context = canvas.getContext("2d");//获取画布的内容,这里的getContext现在只有一个参数2d,没准将来会有3d。
  19. canvas.width = document.body.clientWidth;
  20. canvas.height = document.body.clientHeight;
  21. document.body.appendChild(canvas);
  22.  
  23. lines(context);
  24. settext(context,"美女,你爱吃榴莲么?");
  25. drowArc(context);
  26. }
  27. //划线
  28. function lines(ct){
  29. ct.moveTo(100,100);//要划线的起点
  30. ct.lineTo(400,400);//线的终点
  31. ct.lineWidth =10;//线条的粗细
  32. ct.strokeStyle="#cd2828";//线条颜色
  33. ct.stroke();//写入到画布,每条线段的结束必须渲染一下。
  34. ct.beginPath();//重新开始一个线段,如果没有这个就会和上一个线段连接上
  35. ct.moveTo(100,400);
  36. ct.lineTo(400,100);
  37. ct.stroke();//重点,写入到画布
  38. }
  39. //文本
  40. /*
  41. fillText(文本,x,y)
  42. */
  43. function settext(ct,txt){
  44. ct.fillStyle = "black";//设置字体
  45. ct.fillText (txt,200,400)//
  46.  
  47. }
  48. //画圆
  49. /*
  50. arc的参数
  51.  
  52. context.arc(x,y,r,sAngle,eAngle,counterclockwise);
  53. context.arc(x,y,半径,起始角度,结束角度,是否顺时针);
  54. */
  55. function drowArc(ct){
  56. ct.beginPath();
  57. ct.arc(250,150,50,1.75*Math.PI,3.15*Math.PI);
  58. //ct.closePath();//闭合路径
  59. ct.stroke();
  60. }
  61. init()
  62. </script>
  63.  
  64. </body>
  65. </html>

CreateJS第0章- Canvas基础的更多相关文章

  1. CreateJS第1章 EaselJS基础 (画图)

    这章学学EaselJS的基本常用API首先下载createjs库,在项目文件里新建一个js文件夹放里面http://code.createjs.com/ 各种形状 var sp = new creat ...

  2. HTML5 Canvas核心技术图形动画与游戏开发(读书笔记)----第一章,基础知识

    一,canvas元素 1 为了防止浏览器不支持canvas元素,我们设置“后备内容”(fallback content),下面紫色的字即为后备内容 <canvas id="canvas ...

  3. HTML5移动开发学习笔记之Canvas基础

    1.第一个Canvas程序 看的是HTML5移动开发即学即用这本书,首先学习Canvas基础,废话不多说,直接看第一个例子. 效果图为: 代码如下: <!DOCTYPE html> < ...

  4. 《HTML5 CANVAS基础教程》读书笔记

    一.HTML5简介 1.HTML5新特性 1)结构元素:section,header,hgroup,footer,nav,article,aside, 2)内容元素:figure,figcaption ...

  5. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...

  6. canvas基础之旅

    canvas 主要使用2D rendering context  API 实现其功能和特效. canvas 一般浏览器都支持,但在ie9之前的是不支持的.(解决办法:添加IxplorerCanvas ...

  7. canvas 基础知识整理(二)

    html部分: <canvas id="myCanvas" width="800" height="800" ></can ...

  8. canvas 基础知识整理(一)

    canvas这个 HTML 元素是为了客户端矢量图形而设计的.它自己没有行为,但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布上. html的基本 ...

  9. 【windows核心编程】 第六章 线程基础

    Windows核心编程 第六章 线程基础 欢迎转载 转载请注明出处:http://www.cnblogs.com/cuish/p/3145214.html 1. 线程的组成 ①    一个是线程的内核 ...

随机推荐

  1. oracle 简单SQL

    1, insert into test select * from test;(造测试数据) 2, create table b as select * from a; (创建表结构一样的空表,数据可 ...

  2. Musical Theme - poj 1743(求最大不重叠重复子串)

    题目大意: * 有N(1 <= N <=20000)个音符的序列来表示一首乐曲,每个音符都是1..88范围内的整数,现在要找一个重复的主题. * “主题”是整个音符序列的一个子串,它需要满 ...

  3. WinForm------自定义YearMonthEdit组件

    转载: http://www.cnblogs.com/axing/p/3201066.html 注意: 1.需要在vs里面,添加一个YearMonthEdit组件,然后将链接里面的代码拷贝到里面 2. ...

  4. 用函数生成select选择框

    // 生成 html select option 标签 function build_options($options, $opt='',$k='') { $frags = array(); if ( ...

  5. sqlserver 遇到以零作除数错误的处理 不报错的解决方法

    使用sqlserver 的选项来禁止出现以零除的错误中断,让而让其为null set ansi_warnings offSET ARITHABORT offSET ARITHIGNORE on sel ...

  6. Android中的主题Theme

    系统自带的Theme: android以及为我们定义好了一些theme,需要是我们直接可以拿来使用. 常用的Theme通常如下:  android:theme="@android:style ...

  7. 基于xmpp openfire smack开发之openfire介绍和部署[1]

    前言 http://blog.csdn.net/shimiso/article/details/8816558 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也 ...

  8. 首页在linux下的哪个文件夹

    /data/mindo/tomcat-live/webapps/ROOT/WEB-INF/templates/default/pages/index.jsp   svn检出地址 https://sif ...

  9. 如何自定义echarts主题

    上一篇,选择echarts原有的主题样式,那么如何自定义自己的主题 与选择原有主题类似 1.echarts官网地址http://echarts.baidu.com/echarts2/doc  在工具中 ...

  10. NUll在oracle与sqlserver中使用相同与区别

    最近在使用Oracle进行开发,遇到很多与以前使用sqlserver的不同语法.今天遇到null在两种数据库上面操作上的差别,在此记录两种数据库上的差异. null 与字符串相加 1.在oracle中 ...