SkinSampleSnake.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. var o0 = require('o0');
  2. var o0CC = require('o0CC');
  3. var o0Game = require('o0Game');
  4. cc.Class({
  5. extends: require('Snake'),
  6. addSkin:function(name){
  7. if(this.skin == null){
  8. this.skin = [];
  9. this.skin.push(name);
  10. }else if(this.skin.length >= 20){
  11. return;
  12. }else{
  13. this.skin.push(name);
  14. this.addBody();
  15. }
  16. var sprite = this.body[this.body.length-1].getComponent(cc.Sprite);
  17. cc.loader.loadRes('snake/'+name, cc.SpriteFrame, function (err, spriteFrame) {
  18. sprite.spriteFrame = spriteFrame;
  19. });
  20. },
  21. clearSkin:function(){
  22. this.skin = null;
  23. this.removeAllBody();
  24. var sprite = this.body[0].getComponent(cc.Sprite);
  25. sprite.spriteFrame = null;
  26. },
  27. addHead:function(){
  28. this.head = new cc.Node('head');
  29. this.body.push(this.head);
  30. this.head.parent = this.node;
  31. this.head.rotation = Math.random() * 360;
  32. //Graphic.
  33. var sprite = this.body[this.body.length-1].addComponent(cc.Sprite,0);
  34. sprite.trim = true;
  35. sprite.type = cc.Sprite.Type.SLICED;
  36. sprite.sizeMode = cc.Sprite.SizeMode.CUSTOM;
  37. sprite.SrcBlendFactor = cc.macro.BlendFactor.SRC_ALPHA;
  38. sprite.DstBlendFactor = cc.macro.BlendFactor.ONE_MINUS_SRC_ALPHA;
  39. o0CC.setGroup(sprite,o0Game.GroupIndex.UI);
  40. sprite.node.width = this.size;
  41. sprite.node.height = this.size;
  42. var eyeNode = new cc.Node();
  43. eyeNode.parent = this.head;
  44. var Graphic = this.addEyeGraphic(eyeNode);
  45. },
  46. addBody:function(){
  47. if(this.node.active == false)
  48. return;
  49. var i = this.body.length;
  50. this.body.push(new cc.Node('body'+i));
  51. this.node.addChild(this.body[i],-i);
  52. this.body[i].x = this.body[i-1].x;
  53. this.body[i].y = this.body[i-1].y;
  54. this.body[i].rotation = this.body[i-1].rotation;
  55. var collider = this.body[i].addComponent('cc.CircleCollider');
  56. //collider.tag = o0Game.CollisionTag.Body;
  57. collider.radius = this.radius;
  58. var sprite = this.body[this.body.length-1].addComponent(cc.Sprite,0);
  59. sprite.trim = true;
  60. sprite.type = cc.Sprite.Type.SLICED;
  61. sprite.sizeMode = cc.Sprite.SizeMode.CUSTOM;
  62. sprite.SrcBlendFactor = cc.macro.BlendFactor.SRC_ALPHA;
  63. sprite.DstBlendFactor = cc.macro.BlendFactor.ONE_MINUS_SRC_ALPHA;
  64. o0CC.setGroup(sprite,o0Game.GroupIndex.UI);
  65. sprite.node.width = this.size;
  66. sprite.node.height = this.size;
  67. },
  68. start: function () {
  69. },//必须保留
  70. });