CreateJS自学教程基础 - 创建简单的图形

上一章CreateJS自学教程 - 场景的创建) 我们讨论了如何使用CreateJS来创建一个场景,并且在场景上添加了一个“Hello World”文本,这次我们来研究如何创建简单的图形。图形是游戏的重要组成部分,CreateJS对原生Canvas的作图接口进行封装,使他们对开发 者更加友好,更易于使用,下面我们来看一个示例,首先看一下效果图:

2013-4-17 20:09 上传
下载附件 (17.03 KB)


实现的代码:

  1. var s = new createjs.Shape();
  2. var g = s.graphics;

  3. //头
  4. g.setStrokeStyle(15, 'round', 'round');
  5. g.beginStroke("#000");
  6. g.beginFill("#F00");
  7. g.drawCircle(170, 170, 170); //55,53
  8. g.endFill();
  9. g.setStrokeStyle(1, 'round', 'round');

  10. //云软件:www.misoft.com.cn
  11. //右眼
  12. g.setStrokeStyle(5, 'round', 'round');
  13. g.beginStroke("#000");
  14. g.beginFill("#000");
  15. g.drawRoundRect(125, 64, 20, 50, 10);
  16. g.endFill();

  17. //左眼
  18. g.setStrokeStyle(5, 'round', 'round');
  19. g.beginStroke("#000");
  20. g.beginFill("#000");
  21. g.drawRoundRect(200, 64, 20, 50, 10);
  22. g.endFill();

  23. //嘴巴
  24. g.setStrokeStyle(15, 'round', 'round');
  25. g.beginStroke("#000");
  26. g.moveTo(45, 155);
  27. g.bezierCurveTo(83, 307, 254, 317, 296, 152);

  28. // 创建场景,并把笑脸画在场景上
  29. var myCanvas = new Canvas();
  30. var myStage = new createjs.Stage(myCanvas);
  31. s.x = 50;
  32. s.y = 50;
  33. myStage.addChild(s);
  34. myStage.update();
复制代码

简化代码如下:

  1. var s = new createjs.Shape();
  2. var g = s.graphics;

  3. //头
  4. g.setStrokeStyle(15, 'round', 'round').beginStroke("#000").beginFill("#F00").drawCircle(170, 170, 170).endFill().setStrokeStyle(1, 'round', 'round');

  5. //右眼
  6. g.setStrokeStyle(5, 'round', 'round').beginStroke("#000").beginFill("#000").drawRoundRect(125, 64, 20, 50, 10).endFill();

  7. //左眼
  8. g.setStrokeStyle(5, 'round', 'round').beginStroke("#000").beginFill("#000").drawRoundRect(200, 64, 20, 50, 10).endFill();

  9. //嘴巴
  10. g.setStrokeStyle(15, 'round', 'round').beginStroke("#000").moveTo(45, 155).bezierCurveTo(83, 307, 254, 317, 296, 152);

  11. // 创建场景,并把笑脸画在场景上
  12. var myCanvas = new Canvas();
  13. var myStage = new createjs.Stage(myCanvas);
  14. s.x = 50;
  15. s.y = 50;
  16. myStage.addChild(s);
  17. myStage.update();
复制代码

CreateJS提供了链式调用的方法,当然,为了压缩代码,你可以把上面几个作图语句连在一起。这样仍然没有达到压缩代码的要求,我们再简化一下:

b

  1. var s = new createjs.Shape();
  2. var g = s.graphics;
  3.         
  4. //头
  5. g.ss(15, 'round', 'round').s("#000").f("#F00").dc(170, 170, 170).ef().ss(1, 'round', 'round');
  6.         
  7. //右眼
  8. g.ss(5, 'round', 'round').s("#000").f("#000").rr(125, 64, 20, 50, 10).ef();
  9.         
  10. //左眼
  11. g.ss(5, 'round', 'round').s("#000").f("#000").rr(200, 64, 20, 50, 10).ef();
  12.         
  13. //嘴巴
  14. g.ss(15, 'round', 'round').s("#000").mt(45, 155).bt(83, 307, 254, 317, 296, 152);

  15. // 创建场景,并把笑脸画在场景上
  16. var myCanvas = new Canvas();
  17. var myStage = new createjs.Stage(myCanvas);
  18. s.x = 50;
  19. s.y = 50;
  20. myStage.addChild(s);
  21. myStage.update();
复制代码

CreateJS对所有作图接口提供了“微缩版”,这样可以对那些冗长的方法名进行压缩,但是这样不便于阅读。

  1. var s = new createjs.Shape();
  2. var g = s.graphics;
  3. //云软件:www.misoft.com.cn
  4.         
  5. //头
  6. g.ss(15, 'round', 'round').s("#000").f("#F00").dc(170, 170, 170).ef().ss(1, 'round', 'round');
  7.         
  8. //右眼
  9. g.ss(5, 'round', 'round').s("#000").f("#000").rr(125, 64, 20, 50, 10).ef();
  10.         
  11. //左眼
  12. g.ss(5, 'round', 'round').s("#000").f("#000").rr(200, 64, 20, 50, 10).ef();
  13.         
  14. //嘴巴
  15. g.ss(15, 'round', 'round').s("#000").mt(45, 155).bt(83, 307, 254, 317, 296, 152);

  16. // 创建场景,并把笑脸画在场景上
  17. var myCanvas = new Canvas();
  18. var myStage = new createjs.Stage(myCanvas);
  19. s.x = 50;
  20. s.y = 50;
  21. myStage.addChild(s);
  22. myStage.update();
复制代码

CreateJS对所有作图接口提供了“微缩版”,这样可以对那些冗长的方法名进行压缩,但是这样不便于阅读。

    本文云软件[www.misoft.com.cn] 转载自网络

posted @ 2014-12-24 13:20  无名盗闪  阅读(662)  评论(0)    收藏  举报