Fighter类的定义在Fighter.js中,Fighter类继承与PhysicsSprite。

原版的Fighter.js:

 var Fighter = cc.PhysicsSprite.extend({
hitPoints: true, //当前的生命值
space: null, //所在物理空间
ctor: function (spriteFrameName, space) {
this._super(spriteFrameName);
this.space = space; var verts = [
-94, 31.5,
-52, 64.5,
57, 66.5,
96, 33.5,
0, -80.5]; this.body = new cp.Body(1, cp.momentForPoly(1, verts, cp.vzero));
this.body.data = this;
this.space.addBody(this.body); var shape = new cp.PolyShape(this.body, verts, cp.vzero);
shape.setElasticity(0.5);
shape.setFriction(0.5);
shape.setCollisionType(Collision_Type.Fighter);
this.space.addShape(shape); this.hitPoints = Fighter_hitPoints; var ps = new cc.ParticleSystem(res.fire_plist);
//在飞机下面.
ps.x = this.getContentSize().width / 2;
ps.y = 0;
//ps.setRotation(180.0);
ps.setScale(0.5);
this.addChild(ps);
}, //重写setPosition
setPosition: function (newPosition) { var halfWidth = this.getContentSize().width / 2;
var halfHeight = this.getContentSize().height / 2;
var pos_x = newPosition.x;
var pos_y = newPosition.y; if (pos_x < halfWidth) {
pos_x = halfWidth;
} else if (pos_x > (winSize.width - halfWidth)) {
pos_x = winSize.width - halfWidth;
} if (pos_y < halfHeight) {
pos_y = halfHeight;
} else if (pos_y > (winSize.height - halfHeight)) {
pos_y = winSize.height - halfHeight;
} this.body.setPos(cc.p(pos_x, pos_y)); }
}) ;

第5~23行:设置飞机的物理引擎特性,这里使用物理引擎的目的是进行精确碰撞检测。
第27~32行:创建飞机后面(飞机的尾部/尾巴这里)喷射烟雾例子效果。
第29~30行:设置烟雾粒子在飞机的下面(尾部)。
第32行:由于粒子设计人员设计的粒子比较大,通过第32行代码ps.setScale(0.5)缩小一半。
第33行:this.addChild(ps)是将粒子系统添加到飞机精灵上。


这里附加一点子弹精灵Bullet及shape相关的信息:

Bullet的shape定义就比较简单(直接一个矩形)。
圆形的定义可参见Enemy.js中陨石和行星的定义;
多边形的定义可参见Enemy.js或Fighter.js中飞机的定义;
简单矩形的定义可参见Bullet.js中子弹的定义。

最新文章

  1. 15个关于Chrome的开发必备小技巧[译]
  2. Struts2之文件上传下载
  3. Mybatis 示例之 SelectKey
  4. Visual C#编写3D游戏框架示例
  5. DS实验题 地鼠安家
  6. HDU/杭电2013多校第三场解题报告
  7. nyoj 6 喷水装置(一)
  8. Eclipse插件-easy-explore-1.0.4
  9. 多核处理器基础SMP&amp;AMP&amp;BMP
  10. HBase 学习之一 &lt;&lt;HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行&gt;&gt;
  11. userAgent,JS这么屌的用户代理,你造吗?——判断浏览器内核、浏览器、浏览器平台、windows操作系统版本、移动设备、游戏系统
  12. 安徽省2016“京胜杯”程序设计大赛_E_转啊转
  13. 前端通信:SSE设计方案(二)--- 服务器推送技术的实践以及一些应用场景的demo(包括在线及时聊天系统以及线上缓存更新,代码热修复案例)
  14. python 遍历hadoop, 跟指定列表对比 包含列表中值的取出。
  15. 理解运用JS的闭包、高阶函数、柯里化
  16. C#特性之数据类型
  17. 【逆向工具】IDA使用6-签名文件制作
  18. Codeforces.GYM101612E.Equal Numbers(贪心)
  19. 在 Anaconda下解决国内安装tensorflow等下载慢和中断,出错,异常问题的一点思路
  20. 四则运算APP,团队项目之需求

热门文章

  1. chardet查看字符串的编码(非常好用)
  2. sql 索引笔记2
  3. tk.mybatis通用插件updateByPrimaryKeySelective无法自动更新ON UPDATE CURRENT_TIMESTAMP列的解决办法
  4. 浏览器模式&amp;用户代理字符串(IE)
  5. delphi TTBXToolBar 增加外部控件
  6. idea不显示gradle的视图解决办法
  7. Git结合tar自动打升级包
  8. 转: 关于CAS cpu锁的技术说明。
  9. [Python设计模式] 第26章 千人千面,内在共享——享元模式
  10. BFC 形成条件