c#
文章平均质量分 75
刘峰1011
....
展开
-
C# 使用base64对字符串进行编码和解码
需要引入命名空间:using System;using System.Text;解码: public static string UnBase64String(string value) { if (value == null || value == "") { return ""; }原创 2018-01-31 17:59:52 · 24897 阅读 · 0 评论 -
使用sin函数实现阻尼动画效果
某款游戏中,有一个combo的功能,需要弹出一个combo的ui,要求要从小到大然后晃动几下,首先想到的就是阻尼运动,但是阻尼方程过于复杂,所以打算用sin函数改出一个来。。。首先看一下sin函数图像y=sin(x):首先我们需要让函数有一个衰减的过程,所以我们再除以x,像这样 y=sin(x)/x:然后因为我们的动画需要从小到大,即从0-1,所以我们把原创 2018-02-01 00:00:16 · 3409 阅读 · 0 评论 -
关于贝塞尔曲线在游戏开发中的应用
贝塞尔曲线用到的地方太多了,unity里的曲线编辑器基本都是贝塞尔曲线,还有photoshop里的钢笔路径等等,那我们自己平时开发的时候能不能用上这个东西呢?答案是肯定的,比如各种动画,移动轨迹,还有一些漂亮的几何图形我们都可以使用它来完成,那我们我们来尝试自己应用一下这个神奇的曲线吧~~~贝塞尔曲线有好几种,最常用的是3次方的公式,就是由p0-3的4个点来确定的一条曲线,看一个效原创 2018-02-01 19:26:38 · 3178 阅读 · 4 评论 -
关于int数据二进制位的一次实际应用
大部分游戏都有每日签到的系统,我们当然也不例外,这个签到数据需要记录玩家每个月里面每天的领取情况,就是哪天领过,哪天没领过,这个我们应该怎么记录呢,每天一个数据也太浪费资源了,于是就想到了使用一个int型数据中的没个二进制位来存储一个月中每一天的领取状态,这样一个月最多31天,而int型数据大部分情况下都是32位以上的,正好~~那如何对每个二进制位进行操作呢,很简单,二进制位的第几位就对应的第原创 2018-02-01 14:58:11 · 671 阅读 · 0 评论 -
unity的迷宫生成算法
思路:定义一个二维数组,二维数组中奇数行列视为围墙,偶数为路径。 从起始点开始,随机从上下左右四个位置寻找周围没有被找到过的位置,找到后此点标记为1,并把此点与前一点之间的位置设置为1。 如果全部位置已经找到过,则退回到上一个点重复次逻辑,直到所有点都记录到或 退回到起始点且没有可用点。文章最后我会附上完整代码。下面我们来实现一下 新建一个迷宫生成类:MazeC原创 2018-02-01 11:48:04 · 9166 阅读 · 5 评论 -
游戏中关于跳跃的函数图像的推导以及应用
跳跃应该是游戏开发中一个最常见的功能之一,实现的方法也有很多,这里我来讲一个我以前用的一个方法.正常的跳跃,如果使用物理引擎的话,就直接给一个向上的力就可以了,但是有一些游戏,例如跑酷,角色的移动速度都是越来越快的,而如果还是只给一个向上的力的话,跳跃的距离就会相应的变远,这样肯定是不行的,所以为了让角色能够按照固定的路径来跳跃,我们就需要设计一个函数能够模拟出跳跃的效果。下面我会给出原创 2018-01-31 22:26:21 · 5880 阅读 · 2 评论 -
c#中对int等基础数据类型进行封装加密
为了防止游戏过程中被第三方应用搜索到真实数据信息,我们需要对基础数据类型进行二次封装并加密。基本思想就是设置一个密码,然后与真实数据进行异或操作。为了使用方便,可以对运算符进行重载,这样就可以像使用基本数据类型一样使用了。直接上代码:public struct AHInt{ private static int cryptoKey = 123456; priva原创 2018-01-31 19:04:43 · 1337 阅读 · 0 评论 -
c#中对object进行序列化和反序列化
有时候我们需要对一些数据进行二进制序列化以达到保存或传输的目的,这里记录一下对object的序列化和反序列化操作。首先引入命名空间:using System.IO;using System.Runtime.Serialization.Formatters.Binary;object的序列化和反序列化 public static byte[] SerializeObject(obj原创 2018-01-31 18:32:44 · 16535 阅读 · 0 评论 -
c#使用SharpZipLib对二进制数据进行压缩和解压
首先需要下载SharpZipLib,下载地址:http://icsharpcode.github.io/SharpZipLib/需要引入命名空间:using ICSharpCode.SharpZipLib.GZip;using System.IO;压缩: public static byte[] CompressGZip(byte[] rawData) {原创 2018-01-31 18:10:36 · 6921 阅读 · 1 评论 -
unity中的一个简单易用的A*寻路算法类
以前项目中用到了寻路,就写了个A*寻路的算法类,感觉还不错,这里分享出来。这里有可运行的测试项目:https://github.com/LiuFeng1011/Test/tree/master/Assets/AStarA*算法的原理网上有很多,这里只简单说一下我这个算法的逻辑:*我的这个算法里面没有关闭列表,因为我会根据地图数据创建一个对应的节点数据的数组,每个节点数据记录自己当前的状态,是开启还...原创 2018-02-24 16:55:22 · 2553 阅读 · 0 评论