服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服务器之家 - 编程语言 - JavaScript - js教程 - 如何用CocosCreator实现射击小游戏

如何用CocosCreator实现射击小游戏

2022-03-01 16:33战 胜 js教程

这篇文章主要介绍了如何用CocosCreator实现射击小游戏,此游戏难度不大,仅作为入门的练手小游戏,一小时就能完成,里面用到的知识很常用,喜欢游戏的同学,可以参考下

分析下制作步骤:

1. 准备好资源,搭建场景

资源的话可以自己到网上找,也可以直接用我的也行;创建好相应文件夹,把资源放到res文件夹下;

搭建场景:
第一步:创建一个单色精灵(Script) bg 背景, 设置好颜色,加一个Widget组件,使其充满屏幕;

如何用CocosCreator实现射击小游戏

第二步: 在bg节点下创建topbutton空节点作为顶与底部,然后在两个空节点加入带刺的节点(直接将图片拖到top层级管理器就可以),现在我们需要给top与button节点添加一个Layout组件,属性设置如图,这样可以看到屏幕上下都有刺了。

如何用CocosCreator实现射击小游戏

第三步: 将玩家小人、子弹、敌机同样的方法加入到场景中,再创建一个Label节点用来显示分数,调节一下位置;

如何用CocosCreator实现射击小游戏

2. 代码控制游戏

第一步: 创建一个game脚本,挂载到dg节点上;

第二步: 编辑代码,在 properties添加属性,用来关联玩家、子弹、敌人节点,再编辑器关联;

如何用CocosCreator实现射击小游戏

第三步: 代码逻辑控制,包括初始化玩家、子弹、敌人;注册监听事件;写动作函数;计分判断等;

全部代码:

  1. cc.Class({
  2. extends: cc.Component,
  3.  
  4. properties: {
  5. playerNode: cc.Node,
  6. enemyNode: cc.Node,
  7. fireNode: cc.Node,
  8. scoreNode: cc.Label,
  9. },
  10.  
  11. onLoad () {
  12. this.playLoad();
  13. this.fireLoad();
  14. this.enemyLoad();
  15. this.node.on("touchstart",this.fire,this);
  16.  
  17. },
  18.  
  19. update (dt) {
  20. if(Math.abs(this.fireNode.y-this.enemyNode.y)<(this.fireNode.height/3+this.enemyNode.height/3)
  21. &&Math.abs(this.fireNode.x-this.enemyNode.x)<(this.fireNode.width/3+this.enemyNode.width/3)){
  22. console.log("击败敌机");
  23. this.scoreNode.string= ++this.score;//击中得分
  24. this.fireNode.stopAction(this.fireAction);
  25. this.enemyNode.stopAction(this.enemyAction);
  26. this.enemyNode.active=false;
  27. this.fireNode.active=false;
  28. this.fireLoad();//初始化子弹
  29. this.enemyLoad();// 初始化敌机
  30. }
  31.  
  32. },
  33.  
  34. // 关闭事件监听
  35. onDestroy(){
  36. this.node.off("touchstart",this.fire,this);
  37. },
  38. // 初始玩家
  39. playLoad(){
  40. this.score=0;
  41. this.playerNode.y=-cc.winSize.height/4;
  42.  
  43. },
  44. //初始化子弹
  45. fireLoad(){
  46. this.fireNode.active=true;
  47. this.isFire=false;
  48. this.fireNode.x=this.playerNode.x;
  49. this.fireNode.y=this.playerNode.y+this.playerNode.height;
  50. },
  51. // 初始化敌机
  52. enemyLoad(){
  53. this.enemyNode.active=true;
  54. this.enemyNode.x=Math.random()* cc.winSize.width;
  55. this.enemyNode.y=cc.winSize.height/3;
  56. let x=cc.winSize.width/2-this.enemyNode.width/2;
  57. let y=Math.random()* cc.winSize.height/4;
  58. let seq=cc.repeatForever(cc.sequence(cc.moveTo(1.5,cc.v2(-x,y)),cc.moveTo(1.5,cc.v2(x,y))));
  59.  
  60. this.enemyAction=this.enemyNode.runAction(seq);
  61. },
  62. // 死亡 重新加载游戏
  63. dear(){
  64. console.log("死亡");
  65. cc.director.loadScene("game_scenes");
  66. },
  67.  
  68. // 发射子弹
  69. fire(){
  70. if(this.isFire) return;
  71. this.isFire=true;
  72. console.log("开始发射");
  73. var fireaction=cc.sequence(
  74. cc.moveTo(1,cc.v2(this.playerNode.x,cc.winSize.height/2)),
  75. cc.callFunc(()=>{
  76. this.dear();
  77. }));
  78. this.fireAction=this.fireNode.runAction(fireaction);
  79. console.log("结束发射");
  80. }
  81.  
  82. });

最终效果

如何用CocosCreator实现射击小游戏

以上就是如何用CocosCreator实现射击小游戏的详细内容,更多关于CocosCreator实现射击小游戏的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/qq_45021180/article/details/104347037

延伸 · 阅读

精彩推荐
  • js教程JS实现纸牌发牌动画

    JS实现纸牌发牌动画

    这篇文章主要为大家详细介绍了JS实现纸牌发牌动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    计算机的皇帝5432022-01-04
  • js教程javascript实现倒计时关闭广告

    javascript实现倒计时关闭广告

    这篇文章主要为大家详细介绍了javascript实现倒计时关闭广告,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    爱前端的茂茂11612022-01-20
  • js教程js 执行上下文和作用域的相关总结

    js 执行上下文和作用域的相关总结

    这篇文章主要介绍了js 执行上下文和作用域的相关知识总结,帮助大家更好的理解和使用JavaScript,感兴趣的朋友可以了解下...

    前端Serendipity11292022-01-19
  • js教程JavaScript快速实现日历效果

    JavaScript快速实现日历效果

    这篇文章主要为大家详细介绍了JavaScript快速实现日历效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    云杰8了10872022-02-13
  • js教程JS一分钟在github+Jekyll的博客中添加访问量功能的实现

    JS一分钟在github+Jekyll的博客中添加访问量功能的实现

    这篇文章主要介绍了JS一分钟在github+Jekyll的博客中添加访问量功能的实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借...

    董哥大鸟走四方6172022-02-22
  • js教程原生JS实现pc端轮播图效果

    原生JS实现pc端轮播图效果

    这篇文章主要为大家详细介绍了原生JS实现pc端轮播图效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    qq_1519846510212021-12-15
  • js教程js实现弹框效果

    js实现弹框效果

    这篇文章主要为大家详细介绍了js实现弹框效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    程序猿余某人3962022-02-20
  • js教程玩转 Mockjs,前端也能跑得很溜

    玩转 Mockjs,前端也能跑得很溜

    mockjs作用就是,生成随机模拟数据,拦截 ajax 请求,可以对数据进行增删改查。在生成数据时,我们就需要能够熟练使用 mock.js 的语法。...

    前端人4882022-01-05