![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习要点
wzyezqxl
这个作者很懒,什么都没留下…
展开
-
白鹭引擎进度条封装 ----反向进度条
class ProgressBar extends egret.Sprite { public background:egret.Bitmap; public bar:egret.Bitmap; public barMask:egret.Rectangle; /** * 反向进度条 * */ public reverse = false;转载 2016-10-18 11:17:38 · 2818 阅读 · 0 评论 -
总结
在这周接触到新的开发模式,之前我们开发都是使用的cocosCreate或者是使用webstorom直接搭建的界面,在cocosCreate中我们可以很直观的看到界面的UI界面。而使用webstorm则需要我们逐个添加层和精灵构建出一个游戏界面。新的开发模式是使用加载ccbi文件来方便的控制UI界面,ccbi文件是cocostudio2.0版本以上导出的文件格式,跟我们之前使用的json文件是同样的效原创 2016-09-03 18:36:11 · 300 阅读 · 0 评论 -
玫瑰花数
编写一个函数,判断某一个四位数是不是玫瑰花数字。玫瑰花数字是四位数字上各个位数上的数字的四次方和恰好等于该数字本身。 要求:在主函数中从键盘任意输入一个四位数,调用函数,判断是否为玫瑰花数,并输出文字结果 int s4cf(int i) // 四次方 { return i*i*i*i; } int prac3(int n) //玫瑰花数为:1634 8208 9474转载 2016-08-12 18:04:43 · 2513 阅读 · 0 评论 -
动态加载plist文件和SDK接口使用方式
在开发过程中我们会用到大量的图片,为了避免麻烦,我们一般都是通过软件给所有的图片生产plist文件。在Coco-js中可以通过动态加载的方式先给plist文件加载到精灵的缓冲池中。然后在使用的时候通过去缓冲池中获取或者直接加载就行了 。加载代码如下:cc.spriteFrameCache.addSpriteFrames("res/pic/daomubiji.plist"); var原创 2016-09-02 17:55:06 · 1060 阅读 · 0 评论 -
对于ccbi文件的加载使用的理解
一、使用: 首先,我也没有去操作过cocos Builder工具,因为毕竟我不是干美术的,我只是使用这个工具做好的ccbi文件而已,所以。。。我对这个工具的操作并不熟悉。只是在网上找了一些相关的知识和我以前学过的cocos studio做了下对比:1、支持的平台不一样 cocostudio目前的版本只能在windows下面使用(ps:据说mac版也正在开发之中,所以未来一段时间也可能会有m转载 2016-09-02 16:10:50 · 2760 阅读 · 0 评论 -
关于TexturePacker的使用
认识TexturePacker的界面 Data Format:导出什么引擎数据,默认cocos2d,下拉列表中有很多,基本常用的引擎都支持了 Data File :导出文件位置(后缀名.plist) Texture Format:纹理格式,默认png Image format:图片像素格式,默认RGBA8888…根据对图片质量的需求导出不同的格式 Dithering:抖原创 2016-08-11 14:51:32 · 544 阅读 · 0 评论 -
HTTP客户端和服务端的理解
GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,多个参数用&连接 POST提交:把提交的数据放置在是HTTP包的包体中。 GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变 根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等 get 是向服务器索取数据的一种请求。 设置一个简单的登陆服务器: 服务器代码va原创 2016-08-09 15:30:15 · 4484 阅读 · 0 评论 -
HTTP中get和post 的区别和理解
一 原理区别一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETEURL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对转载 2016-08-08 11:49:36 · 399 阅读 · 0 评论 -
C++基础(1)
c++中常见的格式符: //—————————-格式符—————————-1.%d格式符。它的作用是将其对应的表达式的值按照十进制整数方式输出。(2)%md格式符。它的作用是按照m指定的宽度进行输出。 (3)%ld格式符。它的作用是将其对应的表达式的值按照长整数方式输出。 (4)%mld格式符。这个格式符的作用和上面的作用一样。 2.%o格式符。它的作用是将其对应的表达式的值按照八进制整数方式输出原创 2016-08-08 08:32:19 · 553 阅读 · 3 评论 -
正则表达式
正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码:var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; var r = fi转载 2016-08-05 15:11:03 · 432 阅读 · 0 评论 -
A*算法
这两天在做百度前端技术学院的题目,其中有涉及到寻路相关的,于是就找来相关博客进行阅读。看了Create Chen写的理解A*寻路算法具体过程之后,我很快就理解A*算法的原理。不得不说作者写的很好,通熟易懂,图片也做的很好,可见作者在这上面是花了心思的。如果让我写,我是写不来这么好的。唯一的不足就是,因为我学的是js,因此最后给我的源码我是用不了的……因此才有自己写一篇的打算,方面学习js人的学习。然转载 2016-08-05 11:53:01 · 373 阅读 · 0 评论 -
C++关于结构体对齐
说明: 结构体的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。这些问题在平时编程的时候也确实不怎么用到,但在一些笔试面试题目中出是常常出现,一、解释 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间转载 2016-08-25 08:55:33 · 1150 阅读 · 0 评论 -
面试问题关于cocos-js的优化问题
1:缓存的创建和清除 为了提供性能,Cocos2d-JS提供了几个缓存,分别应用与不同的情况。这些 缓存类有纹理缓存,精灵帧缓存,动画 缓存和着色器缓存。 场景与资源 不同的场景中资源的占用不同,而资源的占用决定了缓存创建和清除的时机。 场景与资源 不同的场景中资源的占用不同,而资源的占用决定了缓存创建和清除的时机。 缓存创建和清除时机 使用纹理和精灵帧缓存时,一个原则是:“尽可能将转载 2016-08-13 19:22:27 · 3055 阅读 · 0 评论 -
对游戏开发中虚拟摇杆的封装
var TouchType = { //默认 DEFAULT: "DEFAULT", //跟随 FOLLOW: "FOLLOW"};var DirectionType = { //四方向 FOUR: "FOUR", //八方向 EIGHT: "EIGHT", //全部 ALL: "ALL"};var Joystick转载 2016-09-30 10:31:58 · 627 阅读 · 1 评论 -
使用白鹭引擎对场景添加删除和替换的封装
class Director { public static instance:Director = null; private stackLayer = []; private gameLayer:Main = null; public static getInstance() { if (Director.instance == null) {原创 2016-09-29 16:49:40 · 2623 阅读 · 0 评论 -
白鹭引擎的微信分享接口
在游戏开发中微信分享功能是必不可少的 。在白鹭引擎中微信的分享接口跟cocos-js有一点出入。代码如下//获取签名分享 var url = "http://www.gamedo.net:8889/get_sign?game_url=" + encodeURIComponent(location.href).replace(/!/g, '%21').replace(/'/g, '%27').re原创 2016-10-25 11:29:02 · 2084 阅读 · 0 评论 -
白鹭中get和set的作用
在白鹭中get和set的方法时为了保护私有属性。 方法的调用: object.私有变量 //其实就是调用get方法; object.私有变量 = “xxx” //其实是调用set方法。原创 2016-10-13 16:26:20 · 516 阅读 · 0 评论 -
Egret的帧动画的使用
对于习惯了cocos引擎的小伙伴,对于白鹭的帧动画我想应该会不是很容易理解。在cocos中假如我们需要添加一个动画,只需要准备好plist文件,在程序中利用for循环给plist文件中的资源添加到动画缓存池中,在需要的地方调用这个动画缓存池取出里面的动画。在一个精灵的节点上添加这个动画效果就可以了。具体代码如下。cc.spriteFrameCache.addSpriteFrames(res.expl原创 2016-09-22 15:39:36 · 17610 阅读 · 0 评论 -
初步学习Egret心得
在所有的项目都做完的情况下,自己自学了一天的白鹭引擎,特对一天的收获和问题总结如下: 首先是白鹭引擎的开发工具,白鹭引擎有十几款不同功能的开发工具,而我们在使用白鹭引擎最常用的就是Egret Wing 这个白鹭引擎的可视化编辑工具也是IDE工具。白鹭引擎是一款基于H5游戏开发的引擎,使用的语言是typescript(英文比较low也不知道有没有写错 =.= 尴尬)反正就是JavaScript的超原创 2016-09-21 10:19:07 · 8670 阅读 · 0 评论 -
TypeScript基本数据类型
对于程序来说我们需要基本的数据单元,如:numbers, strings, structures, boolean 等数据结构。在TypeScript中我们支持很多你所期望在JavaScript中所拥有的数据类型系统。Boolean在JavaScript和TypeScript中也具有最基本的逻辑断言值true/false,采用’boolean’类型。1 var isDone: boolean =转载 2016-09-23 09:37:31 · 2884 阅读 · 0 评论 -
打地鼠游戏收获
今天花了一天的时间写了一个简单的打地鼠游戏。在开发的过程中用到了很多之前开发都没有用到的知识点:具体总结如下: 1:首先是关于倒计时的图片更改。需要达到的效果就是当玩家点击开始游戏的时候就会倒计时三秒 ,这个效果的完成就是有了对精灵的加载资源进行重写。先是写一个js文件他是继承精灵的一个对象。这这个js文件中什么都不要写。只是给倒计时的时候调用就可以。写一个计时器每一帧都会调用一个倒计时的方法。在原创 2016-09-06 18:37:50 · 1196 阅读 · 0 评论 -
面试问题 一些常用的开发模式
软件开发模式简介边做边改模型(Build-and-Fix Model) 好吧,其实现在许多产品实际都是使用的“边做边改”模型来开发的,特别是很多小公司产品周期压缩的太短。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改。 在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新转载 2016-08-13 21:36:16 · 790 阅读 · 0 评论 -
面试问题 面向对象和面向过程编程的一些区别
面向过程编程 面向过程编程是一种以过程为中心的编程思想,分析出解决问题的步骤,然后用函数把这些步骤一步一步实现。面向过程编程,数据和对数据的操作是分离的。面向对象编程 面向对象编程是将事物对象化,通过对象通信来解决问题。面向对象编程,数据和对数据的操作是绑定在一起的。 面向对象的三大基本特征:封装:把客观事物封装成抽象的类,隐藏属性和方法的实现细节,仅对外公开接口。继承:子类可以使用父类的所有转载 2016-08-13 19:29:39 · 3772 阅读 · 0 评论 -
cocosCreator碰撞组件的知识点
碰撞组件分为多边形碰撞,圆形碰撞,矩形碰撞。 修改偏移量:都可以在各自的 碰撞中心区域 点击鼠标左键拖拽来快速编辑碰撞组件的 偏移量 添加分组:分组添加后是不可以删除的,不过可以任意修改分组的名字 一个节点上的碰撞组件,无论如何都是不会相互进行碰撞检测的。 获取碰撞检测系统的API:manager =cc.director.getCollisionManager();默认碰撞检测系统是关闭的原创 2016-08-05 09:39:59 · 9660 阅读 · 0 评论 -
背包系统的制作
在一款RPG游戏中购买装备是必须实现的,创建背包系统的时候需要注意的就是。创建背包时必须区分背包的ID和道具配置表的ID。设置背包ID的作用就是区别当前点击的道具的唯一性。给所以背包的属性都存在一个数组中。 GameAction.addItem(4,1); //----------------------------------- addItem:function(itemId,i原创 2016-08-04 08:44:44 · 5031 阅读 · 0 评论 -
关于Node节点上一些坐标的转换的运用
如图A点的坐标就是(5,5),B点的坐标就是(6,4),事实上这些坐标都是世界坐标,如果需要采用A的模型坐标来描述B的位置,则B的坐标就是(1,-1),当程序中这一个精灵要用到另一个精灵的坐标时,也就是说当我们在用一个坐标描述另一个点的坐标的时候。有时候就需要将世界坐标与模型坐标进行转换,就可以通过Node对象的方法来实现。 (1)convertToNodeSpaceAR(worldPoint)原创 2016-07-15 08:36:11 · 818 阅读 · 0 评论 -
三消游戏的理解(2)
承接上次三消游戏的点击消除掉落。今天主要是说的是三消游戏的核心。点击检测周围相同的颜色块。然后将其消除。首先还是在点击消除的时候,也就是检测点击事件里面。点击开始函数里面的方法抛出一个自定义事件。抛出的对象就是当前点击的坐标。然后在APP.js里面接收自定义事件。代码如下:cheskclose:function(event){ var data = event.getUserData原创 2016-07-04 08:41:58 · 923 阅读 · 0 评论 -
三消游戏(四消道具的添加和最高分)
在完成了三消游戏的基本操作之后,就要给游戏添加一些道具和分数。在添加道具的时候 当满足一个条件的时候就给第一个点击的块添加一个道具。在移除的方法里面添加道具的功能,具体代码如下: 当满足添加的时候生成道具:var specialCell = null; var bigspeci = null; if(end.length原创 2016-07-14 09:04:36 · 1345 阅读 · 0 评论 -
三消游戏(检查游戏是否死局)
在三消的游戏中很有可能在玩着玩着就有可能出现不能交换的情况。所以在三消游戏中检查游戏是否是死局是非常有必要的。检测游戏死局的思路 主要是当游戏到底生成稳定状态的时候,给游戏中的每个块都跟其右边的块和下面的块进行交换。交换之后然后判定是否存在有三个颜色相同的情况,如果有就说明还有可以消除的块,如果不存在三个颜色相同的块,则说明游戏已经到达死局状态,不能再继续游戏了。具体代码如下:首先是给检测是否有三个原创 2016-07-14 08:36:20 · 2589 阅读 · 1 评论 -
C++知识点
1:内存搜非持续化存储 运用的是程序的执行和运行的过程。 硬盘是持久化存储 2:数组就是同一个数据类型的一组数据的集合。 3:短整型是占两个字节,占16位 。单引号里面的是字符型,双引号里面的是字符串型,如意想要在单引号里面再使用单引号需要转义 转义例如’\”,一般需要转译的字符是单引号和双引号还有\; 4:\n:是换行;\r:回车 5:字符占8字节 占的范围是0~255;整数是3原创 2016-07-25 08:31:57 · 203 阅读 · 0 评论 -
RPG游戏弹出框方法的封装
在游戏中当主角点击购买装备或者武器的时候,都会弹出一个提示框;提示主角是否要购买该装备。但是在游戏的制作中不能只考虑到购买武器的时候出现提示框,还有购买装备的时候,所以就要给弹出框的方法进行封装起来。这样就可以达到代码复用的效果。具体代码如下: onLoad: function () { var that = this this.certainPane原创 2016-07-25 08:16:07 · 1234 阅读 · 0 评论 -
考试中的问题(对数组的操作)
1:数组的创建var arr = new array();//创建一个一维的数组;var arr =[];for(var i =0;i<length;i++){ arr[i] =[];}//创建一个 长度为length的二维数组;2:数组的访问var b = arr[1]//获取数组的元素值;arr[1] = "想要赋值的数"//给数组元素赋予新的值;3:数组元素的添加arr.原创 2016-07-24 16:01:28 · 524 阅读 · 0 评论 -
三消游戏的理解(1)
在学习三消游戏的时候,第一件事情就是给所有的图片都显示在多少行多少列的矩阵中。 先在类外写一个全局的变量;固定好游戏的行数和列数var GAMEDATA = { LINE:8, LIST:8,}这样就在每次使用的时候就方便自己管理一些数据。然后就是实现一个矩阵for(var i=0;i<GAMEDATA.LINE;i++){ for(var j=0;j<G原创 2016-07-01 08:33:00 · 885 阅读 · 0 评论 -
关于动画效果的使用
在cosos -js 游戏开发中肯定回经常用到动画效果,来给游戏增加视觉是不同的体验。在运用动画效果之前。首先要准备的是两个必不可少的文件。就是所有动画每一帧的图片的集合。这种图片一般都会整理成一个plis文件和一个对于的所有图片的png图片。因为plis文件包含每一帧的图片。所有在使用时必须从plis文件中取出所有的图片。并且存在一个缓存器中。cc.spriteFrameCache.addSpr原创 2016-07-01 08:05:33 · 346 阅读 · 0 评论 -
RPG游戏商店系统
在RPG游戏中商店是必不可少的东西。在RPG游戏中创建商店的思路主要是当人物移动到NPC面前的时候就会弹出一个对话框,并且在对话框中添加武器配置文件里面的数据。首先要配置自己武器表里面的数据;这里的配置文件是这样子的: 得到这样一个配置表之后,需要给他导出成csv格式,ps:csv格式的文件是以逗号分隔的。所以要的到里面的数据就必须用代码给他加载出来具体代码如下: _loadWeapoData:f原创 2016-07-23 08:41:50 · 2861 阅读 · 0 评论 -
键盘侦听事件
在cocos中运用到比较多的玩家交互功能就是点击事件了。点击事件就是当鼠标点击的事件执行某个动作。除了鼠标点击事件之外还有键盘的侦听事件。和点击事件类似,存在默认的几个方法名,onKeyPressed,当键盘按下的时候,onKeyreleased,当键盘松开的时候。 例如:steInputControl:function(){ var self = this; //添加原创 2016-07-15 08:46:39 · 582 阅读 · 0 评论 -
消除游戏的理解(3)
接前面的下落效果继续写。前面实现了点击之后周围颜色相同的块全部消除。但是并没有下落效果。下落效果思路如下:首先先将颜色相同的块消除。然后遍历数组,记录没一行中有多少个值为空。记录好多少个空之后给记录好的值传给下落的方法,实现掉落效果。具体代码如下:cellFallDown:function(arrayIndexArr){ for(var index in arrayIndexArr)原创 2016-07-04 17:28:49 · 515 阅读 · 0 评论 -
闭包的概念
一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。Js代码 var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变转载 2016-08-04 08:21:34 · 468 阅读 · 1 评论 -
C++知识点(8.15)
方法的返回的方法 1:执行到return语句 2:方法体执行完。3:在执行中报错的时候也会停止终结方法的。 void一定不接收返回值。 double sqrt 求平方根返回的是 浮点型 double pow 求的是幂次方 double strlen 求字符串长度,字符串一般称为字符数组.统计的是字符串字符的个数,遇到\0就结束。 double ceil 求不大于x的最小整数,并且doub原创 2016-08-15 15:12:43 · 338 阅读 · 0 评论 -
RPG游戏胜利或者失败的判断
在RPG游戏中战斗的判断肯定是谁的血量为0就是谁失败了。具体实现的方法是当血量为0的时候使一个全局变量变为true。并且写一个方法return出这个全局变量。就知道是否出现了血量为0的情况。每次一个回合结束之后遍历玩家和敌人的两个数组。具体代码如下: var dies = true for(var index in that.MyplayerArr){原创 2016-07-30 08:47:58 · 1133 阅读 · 0 评论