CreateJS自学教程基础 - 创建简单的图形
在上一章( CreateJS自学教程 - 场景的创建) 我们讨论了如何使用CreateJS来创建一个场景,并且在场景上添加了一个“Hello World”文本,这次我们来研究如何创建简单的图形。图形是游戏的重要组成部分,CreateJS对原生Canvas的作图接口进行封装,使他们对开发 者更加友好,更易于使用,下面我们来看一个示例,首先看一下效果图:
2013-4-17 20:09 上传
下载附件 (17.03 KB)
实现的代码:
- var s = new createjs.Shape();
- var g = s.graphics;
- //头
- g.setStrokeStyle(15, 'round', 'round');
- g.beginStroke("#000");
- g.beginFill("#F00");
- g.drawCircle(170, 170, 170); //55,53
- g.endFill();
- g.setStrokeStyle(1, 'round', 'round');
- //云软件:www.misoft.com.cn
- //右眼
- g.setStrokeStyle(5, 'round', 'round');
- g.beginStroke("#000");
- g.beginFill("#000");
- g.drawRoundRect(125, 64, 20, 50, 10);
- g.endFill();
- //左眼
- g.setStrokeStyle(5, 'round', 'round');
- g.beginStroke("#000");
- g.beginFill("#000");
- g.drawRoundRect(200, 64, 20, 50, 10);
- g.endFill();
- //嘴巴
- g.setStrokeStyle(15, 'round', 'round');
- g.beginStroke("#000");
- g.moveTo(45, 155);
- g.bezierCurveTo(83, 307, 254, 317, 296, 152);
- // 创建场景,并把笑脸画在场景上
- var myCanvas = new Canvas();
- var myStage = new createjs.Stage(myCanvas);
- s.x = 50;
- s.y = 50;
- myStage.addChild(s);
- myStage.update();
简化代码如下:
- var s = new createjs.Shape();
- var g = s.graphics;
- //头
- g.setStrokeStyle(15, 'round',
'round').beginStroke("#000").beginFill("#F00").drawCircle(170, 170,
170).endFill().setStrokeStyle(1, 'round', 'round');
- //右眼
- g.setStrokeStyle(5, 'round', 'round').beginStroke("#000").beginFill("#000").drawRoundRect(125, 64, 20, 50, 10).endFill();
- //左眼
- g.setStrokeStyle(5, 'round', 'round').beginStroke("#000").beginFill("#000").drawRoundRect(200, 64, 20, 50, 10).endFill();
- //嘴巴
- g.setStrokeStyle(15, 'round', 'round').beginStroke("#000").moveTo(45, 155).bezierCurveTo(83, 307, 254, 317, 296, 152);
- // 创建场景,并把笑脸画在场景上
- var myCanvas = new Canvas();
- var myStage = new createjs.Stage(myCanvas);
- s.x = 50;
- s.y = 50;
- myStage.addChild(s);
- myStage.update();
CreateJS提供了链式调用的方法,当然,为了压缩代码,你可以把上面几个作图语句连在一起。这样仍然没有达到压缩代码的要求,我们再简化一下:
b
- var s = new createjs.Shape();
- var g = s.graphics;
-
- //头
- g.ss(15, 'round', 'round').s("#000").f("#F00").dc(170, 170, 170).ef().ss(1, 'round', 'round');
-
- //右眼
- g.ss(5, 'round', 'round').s("#000").f("#000").rr(125, 64, 20, 50, 10).ef();
-
- //左眼
- g.ss(5, 'round', 'round').s("#000").f("#000").rr(200, 64, 20, 50, 10).ef();
-
- //嘴巴
- g.ss(15, 'round', 'round').s("#000").mt(45, 155).bt(83, 307, 254, 317, 296, 152);
- // 创建场景,并把笑脸画在场景上
- var myCanvas = new Canvas();
- var myStage = new createjs.Stage(myCanvas);
- s.x = 50;
- s.y = 50;
- myStage.addChild(s);
- myStage.update();
CreateJS对所有作图接口提供了“微缩版”,这样可以对那些冗长的方法名进行压缩,但是这样不便于阅读。
- var s = new createjs.Shape();
- var g = s.graphics;
- //云软件:www.misoft.com.cn
-
- //头
- g.ss(15, 'round', 'round').s("#000").f("#F00").dc(170, 170, 170).ef().ss(1, 'round', 'round');
-
- //右眼
- g.ss(5, 'round', 'round').s("#000").f("#000").rr(125, 64, 20, 50, 10).ef();
-
- //左眼
- g.ss(5, 'round', 'round').s("#000").f("#000").rr(200, 64, 20, 50, 10).ef();
-
- //嘴巴
- g.ss(15, 'round', 'round').s("#000").mt(45, 155).bt(83, 307, 254, 317, 296, 152);
- // 创建场景,并把笑脸画在场景上
- var myCanvas = new Canvas();
- var myStage = new createjs.Stage(myCanvas);
- s.x = 50;
- s.y = 50;
- myStage.addChild(s);
- myStage.update();
CreateJS对所有作图接口提供了“微缩版”,这样可以对那些冗长的方法名进行压缩,但是这样不便于阅读。
本文云软件[www.misoft.com.cn] 转载自网络

浙公网安备 33010602011771号