一、写在前面的话

最近在学习cocos2d-html5方面的知识,一直想从事游戏方面的工作,自己也找了好多资料。网上关于cocos2d-html5的教程真的不多,也只有自己摸索,慢慢看示例代码。由于本人没有mac,所以呢就用不了cocosbuild来制作动画相关的啦,不过今天又发现一个东西就是可以采用虚拟机来转mac系统,呵呵,明天继续试试。如果你也在学习或从事cocos2d-html5方面东西,希望大家都相互交流,共同进步啊。

二、橡皮筋制作

这部分的主要内容是制作橡皮筋,石头放在弹弓上,用手拉弹弓,让石头弹出去。

需要准备的资源有弹弓、石头、背景

最终效果图:

三、详细分解

1、制作背景(制作背景的代码过于简单,没什么多说的就直接上代码了)

//背景

var BackSprite = cc.Sprite.extend({

ctor:function(){

this._super();

this.initWithFile(s_bg);

this.setAnchorPoint(cc.p(0,0));

this.setPosition(cc.p(0,0));

}

});

2、制作石头,这步比较复杂也是核心的一部分

1)首先必须把石头加载到场景中,位置设置在弹弓之间

2)事件的捕捉,当触发Touch事件的时候,判断当前位置是否在石头的矩形范围之类,当事件移动的时候,获取当前事件的

位置,并且设置石头的位置,此时有个核心的东西就是用画笔画出橡皮筋,从石头到弹弓两端点之间。

3)当事件END的时候,石头必须弹出去,给石头一个方向向量,计算石头当前位置和弹弓顶端中间点的角度。从而让石头射出去。

源代码:

//石头

var StoneSprite = cc.Sprite.extend({

mainLayer:null,

_isPullEnd:false,

_isPulling:false,

_velocity:null,

_stonePoint:null,

ctor:function(){

this._super();

//初始化

this.initWithFile(s_stone);

//设置事件

cc.Director.getInstance().getTouchDispatcher().addTargetedDelegate(this,0,true);

//初始向量

this._velocity = cc.p(800,800);

this.scheduleUpdate();

},

onTouchBegan:function(touch,event){

if(!this.containsTouchLocation(touch)){

this.mainLayer.reset();

this._isPulling = false;

this._isPullEnd = false;

return false;

}

this._isPulling = true;

this._isPullEnd = false;

return true;

},

onTouchMoved:function(touch, event){

var touchPoint = touch.getLocation();

this.setPosition(touchPoint);

this.mainLayer.drawLine();

},

onTouchEnded:function(){

this._isPullEnd = true;

var hitAngle = cc.pToAngle(cc.pSub(cc.p(this.mainLayer._slingshot.getPositionX(),

FLOOR_HEIGHT+this.mainLayer._slingshot.getPositionY()),this.getPosition()));

var scalarVelocity = cc.pLength(this._velocity);

this._velocity = cc.pMult(cc.pForAngle(hitAngle),scalarVelocity);

this.mainLayer.clearDrawLine();

},

containsTouchLocation:function(touch){

//获取触摸点的位置

var touchPoint = touch.getLocation();

//获取当前对象的宽度

var contentSize = this.getContentSize();

//定义拖拽的区域

var myRect = cc.rect(0,0,contentSize.width,contentSize.height);

myRect.origin.x += this.getPosition().x - this.getContentSize().width/2;

myRect.origin.y += this.getPosition().y - this.getContentSize().height/2;

return cc.rectContainsPoint(myRect,touchPoint);

},

update:function(dt){

if(this._isPullEnd&&this._isPulling){

this.setPosition(cc.pAdd(this.getPosition(),cc.pMult(this._velocity,dt)));

this.check();

}

},

check:function(){

//判断是否飞出了整个区域以外,如果是则重设石头

var size = cc.Director.getInstance().getWinSize();

if(this.getPositionX()>(size.width+20)||

this.getPositionX()(size.height+20)

||this.getPositionY()

this.setPosition(this.mainLayer._stonePoint);

this._isPullEnd = false;

this._isPulling = false;

}

}

});

最后:可能做得不是很好,但后面会慢慢完善,也会发到网上供大家参考,源码下载地址:

下载

html5弹弓射球的代码,coco2d-html5制作弹弓射鸟第一部分---橡皮筋相关推荐

  1. coco2d-html5制作弹弓射鸟第一部分---橡皮筋

    一.写在前面的话 最近在学习cocos2d-html5方面的知识,一直想从事游戏方面的工作,自己也找了好多资料.网上关于cocos2d-html5的教程真的不多,也只有自己摸索,慢慢看示例代码.由于本 ...

  2. html音乐播放器代码自动,html5 css3音乐播放器代码

    特效描述:html5 css3 音乐播放器代码.html5 css3音乐播放器代码 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 标题歌手 00:00/00:00 var music ...

  3. html5页面弹幕代码,html5新年许愿文字弹幕代码

    特效描述:html5 新年许愿 文字弹幕代码.html5文字弹幕 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 HTML5手机视频弹幕文字评论代码 #audio_btn{ posit ...

  4. html canvas生成图片,html5 canvas画板涂鸦生成图片代码

    特效描述:html5 canvas 画板涂鸦 生成图片代码.html5画板涂鸦 代码结构 1. HTML代码 清 空 生成图片 var canvas,board,img; canvas = docum ...

  5. html echart完整代码,html5 echarts仪表盘图标动画代码

    特效描述:html5 echarts仪表盘 图标动画代码.html5 echarts仪表盘图标动画代码 代码结构 1. 引入JS 2. HTML代码 // 基于准备好的dom,初始化echarts图表 ...

  6. 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(1)

    别具一格,原创唯美浪漫情人节表白专辑, (复制就可用)(html5,css3,svg)表白爱心代码(1) 一. 前言 回眸之间,丰盈了岁月,涟漪了思绪,轻轻落笔,不写伤痕,不写仇怨,只写岁月经历领悟后 ...

  7. 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4)

    别具一格,独此一家,原创唯美浪漫情人节表白专辑 不一样的惊喜哦~!(html5,css3,svg)表白爱心代码(复制就可用)(4) 目录 款式四:时光的记忆款 1.拷贝完整源代码 2.更新时光盒所显示 ...

  8. 昂首那瞬间,球已停止转动——HTML5实现3D球效果

    本文乃原创demo,转载请注明出处:http://blog.csdn.net/qingfeilee/article/details/7437972,使用代码请保留作者署名,谢谢! 曲终人即散,每当看到 ...

  9. 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(3)

    别具一格,原创唯美浪漫情人节表白专辑, (复制就可用)(html5,css3,svg)表白爱心代码(3) 目录 款式三:心形实时显示认识多长时间桃花飞舞(猫咪)款 1.拷贝完整源代码 2.拷贝完整js ...

  10. 百叶窗设计原理 html5,Html5百叶窗效果的示例代码_html5教程技巧

    本篇文章主要介绍了Html5百叶窗效果的示例代码,小编觉得挺不错的,现在分享给大家HTML5源码和解释,也给大家做个参考.对HTML5感兴趣的小伙伴可以一起跟随小编过来看看吧 本文介绍了Html5百叶 ...

最新文章

  1. 哈佛、MIT等顶级名校全套CS课程资源!
  2. 科普:不要对移动机器人有误解
  3. 如果当初学习编程时能有人给我这些忠告该多好
  4. 两个listmap合并去重_我是如何用单机实现亿级规模题库去重的?
  5. SAP财务模块中,科目余额表中的数据存在数据库的哪张表中?
  6. FPGA Quartus Prime 16.1安装及破解
  7. python概率密度函数参数估计_EM算法求高斯混合模型参数估计——Python实现
  8. oracle之基本的sql_select语句之课后练习
  9. 《MATLAB图像处理超级学习手册》导读
  10. python编码问题无法复现_python中烦人的编码问题
  11. python multiprocessing多进程执行for循环的代码
  12. LTE系统中的OFDM技术
  13. 交换机中查找IP与mac对应关系命令
  14. [Windows]_[中级]_[界面程序打开控制台输出-转发输出到控制台]
  15. ros 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。
  16. poi读取excel表
  17. opencv对视频进行人脸识别--使用videoCapture类
  18. NB-IoT的应用领域
  19. 【论文写作】学术英语写作辅助工具推荐:Academic Phrasebank
  20. hi3559AV100调试记录

热门文章

  1. 从0到1架构webpack+vue前端项目,你自己搭建过vue开发环境吗
  2. 简单介绍模板设计 final关键字 与代码块(再见少年拉满弓,不惧岁月不惧风)
  3. C# Windows form application 播放小视频
  4. Python之OpenGL笔记(23):复习VBO、VAO、VEO
  5. Unity工程简单打Package包流程
  6. 龙飞船回来了,它着陆的样子为什么一点不「马斯克」?
  7. notepad++用正则表达式处理数据
  8. 【VUE】vue3 SFC方式实现九宫格效果
  9. 保弘实业|低收入家庭理财方法大盘点
  10. 万龙链震撼来袭,让我们致敬过去,拥抱未来