- 博客(49)
- 收藏
- 关注
原创 白鹭引擎的微信分享接口
在游戏开发中微信分享功能是必不可少的 。在白鹭引擎中微信的分享接口跟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
2099
转载 白鹭引擎进度条封装 ----反向进度条
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
2834
原创 白鹭中get和set的作用
在白鹭中get和set的方法时为了保护私有属性。 方法的调用: object.私有变量 //其实就是调用get方法; object.私有变量 = “xxx” //其实是调用set方法。
2016-10-13 16:26:20
522
转载 对游戏开发中虚拟摇杆的封装
var TouchType = { //默认 DEFAULT: "DEFAULT", //跟随 FOLLOW: "FOLLOW"};var DirectionType = { //四方向 FOUR: "FOUR", //八方向 EIGHT: "EIGHT", //全部 ALL: "ALL"};var Joystick
2016-09-30 10:31:58
635
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
2628
转载 TypeScript基本数据类型
对于程序来说我们需要基本的数据单元,如:numbers, strings, structures, boolean 等数据结构。在TypeScript中我们支持很多你所期望在JavaScript中所拥有的数据类型系统。Boolean在JavaScript和TypeScript中也具有最基本的逻辑断言值true/false,采用’boolean’类型。1 var isDone: boolean =
2016-09-23 09:37:31
2893
原创 Egret的帧动画的使用
对于习惯了cocos引擎的小伙伴,对于白鹭的帧动画我想应该会不是很容易理解。在cocos中假如我们需要添加一个动画,只需要准备好plist文件,在程序中利用for循环给plist文件中的资源添加到动画缓存池中,在需要的地方调用这个动画缓存池取出里面的动画。在一个精灵的节点上添加这个动画效果就可以了。具体代码如下。cc.spriteFrameCache.addSpriteFrames(res.expl
2016-09-22 15:39:36
17616
原创 初步学习Egret心得
在所有的项目都做完的情况下,自己自学了一天的白鹭引擎,特对一天的收获和问题总结如下: 首先是白鹭引擎的开发工具,白鹭引擎有十几款不同功能的开发工具,而我们在使用白鹭引擎最常用的就是Egret Wing 这个白鹭引擎的可视化编辑工具也是IDE工具。白鹭引擎是一款基于H5游戏开发的引擎,使用的语言是typescript(英文比较low也不知道有没有写错 =.= 尴尬)反正就是JavaScript的超
2016-09-21 10:19:07
8696
原创 打地鼠游戏收获
今天花了一天的时间写了一个简单的打地鼠游戏。在开发的过程中用到了很多之前开发都没有用到的知识点:具体总结如下: 1:首先是关于倒计时的图片更改。需要达到的效果就是当玩家点击开始游戏的时候就会倒计时三秒 ,这个效果的完成就是有了对精灵的加载资源进行重写。先是写一个js文件他是继承精灵的一个对象。这这个js文件中什么都不要写。只是给倒计时的时候调用就可以。写一个计时器每一帧都会调用一个倒计时的方法。在
2016-09-06 18:37:50
1204
原创 总结
在这周接触到新的开发模式,之前我们开发都是使用的cocosCreate或者是使用webstorom直接搭建的界面,在cocosCreate中我们可以很直观的看到界面的UI界面。而使用webstorm则需要我们逐个添加层和精灵构建出一个游戏界面。新的开发模式是使用加载ccbi文件来方便的控制UI界面,ccbi文件是cocostudio2.0版本以上导出的文件格式,跟我们之前使用的json文件是同样的效
2016-09-03 18:36:11
308
原创 动态加载plist文件和SDK接口使用方式
在开发过程中我们会用到大量的图片,为了避免麻烦,我们一般都是通过软件给所有的图片生产plist文件。在Coco-js中可以通过动态加载的方式先给plist文件加载到精灵的缓冲池中。然后在使用的时候通过去缓冲池中获取或者直接加载就行了 。加载代码如下:cc.spriteFrameCache.addSpriteFrames("res/pic/daomubiji.plist"); var
2016-09-02 17:55:06
1070
转载 对于ccbi文件的加载使用的理解
一、使用: 首先,我也没有去操作过cocos Builder工具,因为毕竟我不是干美术的,我只是使用这个工具做好的ccbi文件而已,所以。。。我对这个工具的操作并不熟悉。只是在网上找了一些相关的知识和我以前学过的cocos studio做了下对比:1、支持的平台不一样 cocostudio目前的版本只能在windows下面使用(ps:据说mac版也正在开发之中,所以未来一段时间也可能会有m
2016-09-02 16:10:50
2792
转载 C++关于结构体对齐
说明: 结构体的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。这些问题在平时编程的时候也确实不怎么用到,但在一些笔试面试题目中出是常常出现,一、解释 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间
2016-08-25 08:55:33
1158
原创 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
349
转载 面试问题 一些常用的开发模式
软件开发模式简介边做边改模型(Build-and-Fix Model) 好吧,其实现在许多产品实际都是使用的“边做边改”模型来开发的,特别是很多小公司产品周期压缩的太短。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改。 在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新
2016-08-13 21:36:16
799
转载 面试问题 面向对象和面向过程编程的一些区别
面向过程编程 面向过程编程是一种以过程为中心的编程思想,分析出解决问题的步骤,然后用函数把这些步骤一步一步实现。面向过程编程,数据和对数据的操作是分离的。面向对象编程 面向对象编程是将事物对象化,通过对象通信来解决问题。面向对象编程,数据和对数据的操作是绑定在一起的。 面向对象的三大基本特征:封装:把客观事物封装成抽象的类,隐藏属性和方法的实现细节,仅对外公开接口。继承:子类可以使用父类的所有
2016-08-13 19:29:39
3780
转载 面试问题关于cocos-js的优化问题
1:缓存的创建和清除 为了提供性能,Cocos2d-JS提供了几个缓存,分别应用与不同的情况。这些 缓存类有纹理缓存,精灵帧缓存,动画 缓存和着色器缓存。 场景与资源 不同的场景中资源的占用不同,而资源的占用决定了缓存创建和清除的时机。 场景与资源 不同的场景中资源的占用不同,而资源的占用决定了缓存创建和清除的时机。 缓存创建和清除时机 使用纹理和精灵帧缓存时,一个原则是:“尽可能将
2016-08-13 19:22:27
3061
转载 玫瑰花数
编写一个函数,判断某一个四位数是不是玫瑰花数字。玫瑰花数字是四位数字上各个位数上的数字的四次方和恰好等于该数字本身。 要求:在主函数中从键盘任意输入一个四位数,调用函数,判断是否为玫瑰花数,并输出文字结果 int s4cf(int i) // 四次方 { return i*i*i*i; } int prac3(int n) //玫瑰花数为:1634 8208 9474
2016-08-12 18:04:43
2521
原创 关于TexturePacker的使用
认识TexturePacker的界面 Data Format:导出什么引擎数据,默认cocos2d,下拉列表中有很多,基本常用的引擎都支持了 Data File :导出文件位置(后缀名.plist) Texture Format:纹理格式,默认png Image format:图片像素格式,默认RGBA8888…根据对图片质量的需求导出不同的格式 Dithering:抖
2016-08-11 14:51:32
561
原创 HTTP客户端和服务端的理解
GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,多个参数用&连接 POST提交:把提交的数据放置在是HTTP包的包体中。 GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变 根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等 get 是向服务器索取数据的一种请求。 设置一个简单的登陆服务器: 服务器代码va
2016-08-09 15:30:15
4489
转载 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
403
原创 C++基础(1)
c++中常见的格式符: //—————————-格式符—————————-1.%d格式符。它的作用是将其对应的表达式的值按照十进制整数方式输出。(2)%md格式符。它的作用是按照m指定的宽度进行输出。 (3)%ld格式符。它的作用是将其对应的表达式的值按照长整数方式输出。 (4)%mld格式符。这个格式符的作用和上面的作用一样。 2.%o格式符。它的作用是将其对应的表达式的值按照八进制整数方式输出
2016-08-08 08:32:19
569
3
转载 正则表达式
正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码:var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; var r = fi
2016-08-05 15:11:03
443
转载 A*算法
这两天在做百度前端技术学院的题目,其中有涉及到寻路相关的,于是就找来相关博客进行阅读。看了Create Chen写的理解A*寻路算法具体过程之后,我很快就理解A*算法的原理。不得不说作者写的很好,通熟易懂,图片也做的很好,可见作者在这上面是花了心思的。如果让我写,我是写不来这么好的。唯一的不足就是,因为我学的是js,因此最后给我的源码我是用不了的……因此才有自己写一篇的打算,方面学习js人的学习。然
2016-08-05 11:53:01
384
原创 cocosCreator碰撞组件的知识点
碰撞组件分为多边形碰撞,圆形碰撞,矩形碰撞。 修改偏移量:都可以在各自的 碰撞中心区域 点击鼠标左键拖拽来快速编辑碰撞组件的 偏移量 添加分组:分组添加后是不可以删除的,不过可以任意修改分组的名字 一个节点上的碰撞组件,无论如何都是不会相互进行碰撞检测的。 获取碰撞检测系统的API:manager =cc.director.getCollisionManager();默认碰撞检测系统是关闭的
2016-08-05 09:39:59
9677
原创 背包系统的制作
在一款RPG游戏中购买装备是必须实现的,创建背包系统的时候需要注意的就是。创建背包时必须区分背包的ID和道具配置表的ID。设置背包ID的作用就是区别当前点击的道具的唯一性。给所以背包的属性都存在一个数组中。 GameAction.addItem(4,1); //----------------------------------- addItem:function(itemId,i
2016-08-04 08:44:44
5045
转载 闭包的概念
一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。Js代码 var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变
2016-08-04 08:21:34
475
1
原创 RPG游戏胜利或者失败的判断
在RPG游戏中战斗的判断肯定是谁的血量为0就是谁失败了。具体实现的方法是当血量为0的时候使一个全局变量变为true。并且写一个方法return出这个全局变量。就知道是否出现了血量为0的情况。每次一个回合结束之后遍历玩家和敌人的两个数组。具体代码如下: var dies = true for(var index in that.MyplayerArr){
2016-07-30 08:47:58
1145
原创 indexOf 和 replace的用法
indexOf:indexOf 是搜索在该字符串上是否出现了作为参数传递的字符串,如果找到了字符串,则返回字符的起始位置。如果没有就返回-1; indexOf)(subString,start,)其中subString是需要查找的字符串。 start是一个整数值,他的作用就是是指出字符串对象内开始查找的索引。如果省略,那么就会从字符串的最开始进行查找。如果start是一个负数,那么start就会
2016-07-30 08:35:52
862
原创 RPG游戏适配器的使用
在制作RPG游戏的时候刚开始切入到战斗场景的时候并没有使用上一个场景的真实数据而是在新的场景里面创建了几个假的数据,对战斗模块进行测试。当战斗模块完成之后就要完成真实数据与假数据的对接。需要注意的就是当从上一个场景切换到下一个场景的时候。当初在上一个场景里面的类外全局变量是不会被清除的。所以当切换到下一个场景的时候只需要使用一个适配器就可以使真实的数据和假的数据进行对接。代码如下:_adapter:
2016-07-30 08:19:42
257
原创 C++知识点
1:内存搜非持续化存储 运用的是程序的执行和运行的过程。 硬盘是持久化存储 2:数组就是同一个数据类型的一组数据的集合。 3:短整型是占两个字节,占16位 。单引号里面的是字符型,双引号里面的是字符串型,如意想要在单引号里面再使用单引号需要转义 转义例如’\”,一般需要转译的字符是单引号和双引号还有\; 4:\n:是换行;\r:回车 5:字符占8字节 占的范围是0~255;整数是3
2016-07-25 08:31:57
213
原创 RPG游戏弹出框方法的封装
在游戏中当主角点击购买装备或者武器的时候,都会弹出一个提示框;提示主角是否要购买该装备。但是在游戏的制作中不能只考虑到购买武器的时候出现提示框,还有购买装备的时候,所以就要给弹出框的方法进行封装起来。这样就可以达到代码复用的效果。具体代码如下: onLoad: function () { var that = this this.certainPane
2016-07-25 08:16:07
1246
原创 考试中的问题(对数组的操作)
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
533
原创 RPG游戏商店系统
在RPG游戏中商店是必不可少的东西。在RPG游戏中创建商店的思路主要是当人物移动到NPC面前的时候就会弹出一个对话框,并且在对话框中添加武器配置文件里面的数据。首先要配置自己武器表里面的数据;这里的配置文件是这样子的: 得到这样一个配置表之后,需要给他导出成csv格式,ps:csv格式的文件是以逗号分隔的。所以要的到里面的数据就必须用代码给他加载出来具体代码如下: _loadWeapoData:f
2016-07-23 08:41:50
2877
原创 RPG游戏知识点
在使用cocos Creator 制作的RPG游戏的时候会有很多与之前不同的地方,在游戏中需要点击人物移动并且在移动的过程中播放逐帧动画,首先是制作逐帧动画, 在制作动画的时候需要注意的就是先在一个空的节点上面添加一个sprite 组件,然后在这个节点上面制作动画,等动画制作完成之后删除这个空的节点就可以了,得到逐帧动画的文件之后,就可以通过代码实现一些我们想要实现的功能,比如点击屏幕就播放某一个动
2016-07-23 08:24:25
1629
原创 键盘侦听事件
在cocos中运用到比较多的玩家交互功能就是点击事件了。点击事件就是当鼠标点击的事件执行某个动作。除了鼠标点击事件之外还有键盘的侦听事件。和点击事件类似,存在默认的几个方法名,onKeyPressed,当键盘按下的时候,onKeyreleased,当键盘松开的时候。 例如:steInputControl:function(){ var self = this; //添加
2016-07-15 08:46:39
586
原创 关于Node节点上一些坐标的转换的运用
如图A点的坐标就是(5,5),B点的坐标就是(6,4),事实上这些坐标都是世界坐标,如果需要采用A的模型坐标来描述B的位置,则B的坐标就是(1,-1),当程序中这一个精灵要用到另一个精灵的坐标时,也就是说当我们在用一个坐标描述另一个点的坐标的时候。有时候就需要将世界坐标与模型坐标进行转换,就可以通过Node对象的方法来实现。 (1)convertToNodeSpaceAR(worldPoint)
2016-07-15 08:36:11
831
原创 三消游戏(四消道具的添加和最高分)
在完成了三消游戏的基本操作之后,就要给游戏添加一些道具和分数。在添加道具的时候 当满足一个条件的时候就给第一个点击的块添加一个道具。在移除的方法里面添加道具的功能,具体代码如下: 当满足添加的时候生成道具:var specialCell = null; var bigspeci = null; if(end.length
2016-07-14 09:04:36
1366
原创 三消游戏(检查游戏是否死局)
在三消的游戏中很有可能在玩着玩着就有可能出现不能交换的情况。所以在三消游戏中检查游戏是否是死局是非常有必要的。检测游戏死局的思路 主要是当游戏到底生成稳定状态的时候,给游戏中的每个块都跟其右边的块和下面的块进行交换。交换之后然后判定是否存在有三个颜色相同的情况,如果有就说明还有可以消除的块,如果不存在三个颜色相同的块,则说明游戏已经到达死局状态,不能再继续游戏了。具体代码如下:首先是给检测是否有三个
2016-07-14 08:36:20
2612
1
原创 三消游戏知识点
1:关于三消游戏首先第一步就是游戏的初始状态。在游戏的一开始就不能存在三个或者三个以上相连的块 不然这样游戏一开始就会自动的消除。所以第一步就是检测游戏的开始有多少个三个相连的块。检测的思路 就是遍历数组中的每一个元素,并且检测每一个块的最右边的两个块,如果最右边的两个块的颜色和第一个块的颜色相同那么就说明有三个相连的情况,并且记录下来。存在数组里。ps:检测的条件 考虑到越界的情况 ,所以在检
2016-07-07 08:58:19
1540
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人