记慢慢实现学习cocos 制作游戏
以下皆为记录所用
现在根据官方教程,我已经实现了一个小东西可以上下跳动
了解了Sprite挂载脚本,以及编辑脚本,还有动画的一些入门东西
还了解了如何设置监听键盘按下的输入,这个是没问题的
问题一
如何开启游戏就是如何使我们的玩家控制的Sprite动起来
this.onStartGame();
在onLoad函数中调用onStartGame 即可,onStartGame会有使玩家控制的Sprite动起来的逻辑
但是现在遇到了个问题
Player 组件的update函数并不会调用,但是Game组件节点的update函数是会调用刷新的,这里是需要解决的一个问题
已解决!原因是enable被开启为false了,我先在game调用了 startMoveto函数,吧enable置为 true 但是 加载Player 节点后,调用了Player的onLoad函数,此时enable又变为了false
导致整个组件没有调用update函数
子组件调用父组件函数失败,提示function undefined
原因是父组件函数名和自身某个数据重名
导致调用失败,(js这都不会提示吗!!)
现在基本实现的有
背景音乐以及音效控制
界面的一些修改与构建(最基本)
npc的碰撞逻辑检测
控制人物左右行动,这个只是个暂时的,后期需要优化为空格键跳跃一下,然后左右只走一步
组件之间的树形结构
Sprite的properties属性与cocosCreator资源的关系,以及需要深入理解下cocosCreator中心思想,聚焦游戏内容的开发,我感觉就是这个属性与资源之间的关系
Sprite的enable作用,就是这个Sprite的开关
Label艺术字的数据更改
---- 后面要学习的有 动画,包括NPC的动画,逐帧动画,人物的动画,npc的点击监听,比如弹出弹框
逐帧动画完成,这里需要借助于PS,这里完成了眨眼睛动画,NPC现在可以眨眼睛啦
主要是使用cocosCreator的动画编辑器
插入用PS做好的每帧的动画帧,然后属性列表加入 cc.Sprite.spriteFrame 属性,就可以拖动动画加入动画帧啦
之后将工程里资源管理的动画文件添加到 组件Sprite 的Animation节点,并点击Play on Load,就可以播放啦
-- 骨骼动画今天下载了Spine,成功把Spine的文件导出来了,挂载到了cocosCreator的节点上
-- 下一步需要学习如何将Spine 骨骼动画掌握,包括控制骨骼动画
-- 今天还大概看了下AI的编码方法,行为树,这个大概能懂了,想起自己五年前学习游戏制作的时候,那时候代码编程理解水平还不深,很多东西都无法理解,现在、
越来越觉得数据结构真的太强了!
2021年11月18日
最近的工作,实现了骨骼动画的左右移动,包括动画动作也是改变朝向的左右,实现了简易的镜头移动
实现了骨骼动画人物的前跳和后跳
实现了按键防乱按检测,利用骨骼动画的播放回调,去控制按键是否做出反应,只有在动画播放完毕之后,才可以对按键做出反应
实现了镜头跟踪,很简单,直接把camera拖到了任务节点上,后面需要优化! 已解决,需要处理世界坐标系与节点坐标系之间的关系
实现了Sprite和Sprite的距离检测,坐标比对!
实现了Sprite或者node的显示与展示
实现了Prefab预制资源的使用
更加熟悉了cocosCreator的使用
了解了cocos中的重力系统,并且实现了修改重力,了解了刚体碰撞,以及密度摩擦力对碰撞的影响
第一次使用了cocosCreator 论坛,并且有官方人员回复我!
系统的学习了Spine pro的使用,以及从Ps到成为骨骼动画的一个流程,还在学习中
2021年12月3日
实现了逐帧动画移动控制
实现了逐帧动画在某帧添加关键帧,然后再加入碰撞体进而实现攻击检测(尚有bug,碰撞点size长宽为0 时仍然会产生碰撞回调的bug)
实现了逐帧动画的控制,回调等
对于人物移动有了新的理解,移动控制。通过定义刚体的世界线性速度进行移动的控制
对于开发中每一帧进行思考的理解,要降计算放在每一帧上
实现了简易的tiledMap地图绘制,包括tiledMap上的动画,包括结合PS实现不同切图像素下的动画
2021年12月8日
之前cocosCreator固有bug,帧内做的碰撞体,size 长宽为0时,也会产生碰撞的bug已经解决,只需要判断other.size().width是否会为0时返回即可。
做了线性运动的动画runAction
做了贝塞尔曲线实现,和实现贝塞尔曲线的动画
学的越深越觉得自己懂得太少,还需要砥砺前行
2021年12月13日
最近又遇到了一个bug,在做刚体跳跃的时候,ground地面刚体与人物碰撞的时候,人物碰撞的刚体会发生旋转,然后导致人物“摇晃,站不稳”,甚至出现严重bug(已解决!!!)
这个问题暂时还没找到怎么解决
最近还是找到了官方的一些例子,准备多学习学习,砥砺前行
解决了最近的一个bug 解释了为什么人物一刀砍死了怪物,>0 执行扣血被我写成 < 0 ,血量直接被置成0了
destroy 好容易写成destory!!!
2021年12月20日
上周主要实现了怪物的攻击AI,怪物现在可以自动在英雄进入攻击预警距离之后,发射“武器了”
理解了对象池的使用必要性
实现了节点的创造和销毁,动态的生成和挂点,这个对后续怪物生成逻辑,怪物攻击逻辑是个基础
后续需要把节点生成和销毁结合对象池做在一起
理解了moveTo动画和moveBy动画的区别
理解了坐标系挂载在不同节点上的不同,总之现在还是很混乱,需要后续加强理解学习
下面想要更多学习下bezierTo 贝塞尔曲线的使用,让怪物的攻击能按照贝塞尔曲线去走(真的很优美啊这个曲线)
2021年12月22日
今天是一个值得纪念的日子,自己终于吧 世界坐标系和 节点坐标系的转换,就是
convertToWorldSpaceAR 和
convertToNodeSpaceAR
这两个函数,弄明白了!也把cocos的坐标系弄得更清晰了,不能说全明白了,只能说比以前清晰了, 拜这个文章所指,太感谢啦 https://www.cnblogs.com/gamedaybyday/p/13090533.html
2021年12月27日
最近一周做了背包的简单生成逻辑,就是通过json的数据去生成玩家的背包,背包里物品点击,会在背包下提示物品信息名称等
后面背包打算做成item物品能点击显示一个框,里面有物品的详细信息,加的血量啊,物品的等级呀,非常喜欢颜色区分物品等级
还做了拖动的代码,用户用手拖动之后,touchMove函数能监测拖动轨迹,精灵可以随着一起移动,这个可以实现类似卡牌或者塔防放置的基础
对于出现的Label无法设置width的情况,我设置了200,但是他还是会变成原来的,原因是没有选择Label的OverFlow属性,默认NONE就会被约束死,选择Shrink 或者Camp或者其他的 就可以了,可以自己定是宽度多少
2021年12月29
关于之前刚体碰撞旋转的问题,已解决,cocosCreator刚体组件有个选项就是fixd Rotation勾选上即可解决,碰撞旋转的bug!
tiledMap的墙体碰撞动态加墙,实现了,人物的上下左右也已经实现了
后面主要做做攻击技能,特效动画,往这上面走走
2022年1月7日
最近主要做了怪物沿着规定好的Path路径进行移动,就类似塔防的定点路径
实现了背包数据的读取
实现了人物属性的本地存储与修改
实现了背包item物品详情的点击查看
实现了UI层不随摄像机移动,固定在屏幕上的技术
后面继续实现刷怪,然后怪物沿着路线一直走,根据路线的方向播放不一样的走路动画
2022年1月11日
终于弄明白了cc.bezierBy的使用方法,可以让动画按照贝塞尔曲线那样漂亮的移动
一图流所以cocos只要定下三个点就能实现贝塞尔曲线的绘制
2022年1月12日
在做测试的时候,有时候写好的预制体拖到游戏sences场景中,但是没有触发碰撞!原因是拖进去的时候不在Canvas节点上,没产生碰撞
2022 1月24日
换了怪物的攻击方式,开始在主场景用预制体的方式动态生成怪物
解决了动态添加的怪物没有遵循物理引擎,原因是场景主Sence没有开启物理引擎,开启就能使动态生成的怪物遵循物理引擎了
2022年4月1日
工作上的突击开发完成了,现在有时间就开始看一些cocos的东西,准备继续学起来,加油!
记慢慢实现学习cocos 制作游戏的更多相关文章
- 使用Unity制作游戏关卡的教程(一)
转自: http://gamerboom.com/archives/74131 作者:Matthias Zarzecki 我正在制作<Looking For Group – The Fork O ...
- Cocos Creator 游戏开发
Cocos Creator 游戏开发 https://www.cocos.com/products#CocosCreator 一体化编辑器: 包含了一体化.可扩展的编辑器,简化了资源管理.游戏调试和预 ...
- 学习网页制作中如何在正确选取和使用 CSS 单位
在 CSS 测量系统中,有好几种单位,如像素.百分比.英寸.厘米等等,Web 开发人员很难了解哪些单位在何处使用,如何使用.很多人习惯了总是使用同一种单位,但这一决定可能会严重限制你的设计的执行. 这 ...
- 学习cocos 空程序
今天开始学习cocos代码,首先研究源码中的空程序. 在这个程序中,在main函数中,创建了一个Application: int APIENTRY _tWinMain(HINSTANCE hInsta ...
- Unity中制作游戏的快照游戏支持玩家拍快照
Unity中制作游戏的快照游戏支持玩家拍快照 有些游戏支持玩家“拍快照”,也就是将游戏的精彩瞬间以图片的形式记录下来的功能.这个功能比较有趣,而且以后的用途也会很广,为此本节打算介绍:截取矩形区域内游 ...
- Unity制作游戏中的场景
Unity制作游戏中的场景 1.2.3 场景 在Unity中,场景(Scene)就是游戏开发者制作游戏时,所使用的游戏场景.它是一个三维空间,对应的三维坐标轴分别是X轴.Y轴和Z轴本文选自Unity ...
- cocos2d-x学习笔记(18)--游戏打包(windows平台)
cocos2d-x学习笔记(18)--游戏打包(windows平台) 之前做好的游戏,都是在vs2008下编译执行的.假设说想把游戏公布到网上或者和其它人一起分享游戏,那就得对游戏 ...
- IT兄弟连 HTML5教程 HTML5的学习线路图 第一阶段学习网页制作
学习HTML5技术可并不是简单学会几个新增的标签而已,HTML5现在可以说是前端所有技术的代名词.需要学习的语言和工具不仅多,对于刚接触他们的新人会感觉很乱.另外,前端开发也会细分很多个开发岗位,不同 ...
- 123457123456#0#-----com.threeapp.MakerHanBao01----儿童汉堡制作游戏
----com.threeapp.MakerHanBao01----儿童汉堡制作游戏
- 《零基础学习Python制作ArcGIS自定义工具》课程简介
Python for ArcGIS Python for ArcGIS是借助Python语言实现ArcGIS自动化行为的综合,它不止是如课程标题所述的“制作ArcGIS自定义工具”,还包括使用Pyth ...
随机推荐
- 添加 Echarts bi库
1.安装库和依赖 npm i echarts --save npm i ngx-echarts --save npm i resize-observer-polyfill --save-dev 2.相 ...
- LeetCode-2100 适合打劫银行的日子
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-good-days-to-rob-the-bank 题目描述 你和一群强盗准备打劫银行. ...
- Anndroid GC 那些事
内存回收机制对于app性能优化中比较重要部分,我们要做好优化工作,Android GC工作情况我们需要熟知, 因此整理了一下关于GC知识点,主要分为Dalvik与ART两部分 Dalvik堆内存结构: ...
- Object.assgin基本知识与相关深浅拷贝
一.关于Object.assgin()基本知识 概念 Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. 理解 对象的属性分为可枚举和不 ...
- 97、UserAgentUtils
user-agent-utils 是一个用来解析 User-Agent 字符串的 Java 类库. 其能够识别的内容包括: 超过150种不同的浏览器: 7种不同的浏览器类型: 超过60种不同的操作系统 ...
- Codeforces Round #757 (Div. 2) - D2. Divan and Kostomuksha (hard version)
GCD + DP + 调和级数/埃式筛 [Problem - D - Codeforces](https://codeforces.com/contest/1610/problem/D) 题意 给出一 ...
- python + pyqt 实现的你下载css背景图片的小工具(最终版)
学习python有三个星期了,算是做的第一个小工具,其实也没必要做成图形界面,只是为的GUI学习(再说技术总归给人使用的,熟练很多shell命令只是个"匠人".) win8下面: ...
- 前端JavaScript深拷贝的三种方法,看了不后悔!!!
深拷⻉ 深拷⻉开辟⼀个新的栈,两个对象属完成相同,但是对应两个不同的地址,修改⼀个对象的属性,不会 改变另⼀个对象的属性 常⻅的深拷⻉⽅式有: _.cloneDeep() jQuery.extend( ...
- 不用VS,使用NET 7.0 SDK (v7.0.101)编程c#控制台应用程序方法
摘要:如果没有vs环境,也可以编程c#控制台应用程序学习c#,方法步骤有下面几个步骤. 1.下载NET 7.0 SDK (v7.0.101)安装 网址https://dotnet.microsoft. ...
- elasticsearch别名
es创建别名的好处: 1.不暴露索引名 2.可以为多个结构类似的索引(动态索引)创建相同的别名,查询的时候直接查询别名 ,然后自动匹配多个索引. 在不同的索引创建窗口.比如,如果为数据创建了每日索引, ...