xLua入门
前言xLua为Unity、 .Net、 Mono等C#环境增加Lua脚本编程的能力,借助xLua,这些Lua代码可以方便的和C#相互调用。
什么是热更新热:就是刚出炉简单来说就是当游戏某个功能出现bug,或者修改了某个功能,或者增加了某个功能的时候,我们不需要重新下载安装安装包,就可以更新游戏内容。
热更新的好处:不用浪费流量重新下载,不用通过商店审核更加快速,不用重新安装玩家可以更快体验到更新的内容
目前比较受欢迎的热更新方案:uLua tolua xLua
热更新方案这些热更新方案都是基于Lua语言的,也可以叫做lua插件(可以运行lua,并实现了lua和C#交互的插件)。所以本质上这些热更新方案就是一个lua插件,可以运行lua,并实现了lua和C#交互的插件。
1,(luainterface cs2lua tolua)–>ulua(不再维护,转到主要维护tolua)2,tolua(基于tolua开发了luaframework)3,slua代码质量好,性能比tolua低4,C#light、LSharp同一个作者(商用比较少)
xLua xLua是Unity3D下L ...
RESTful
前言
RESTful是目前最流行的API设计规范,用于Web数据接口的设计。本文总结RESTful的特点,以及如何设计和使用RESTful风格的API。
RESTful规范一种软件的架构风格,设计风格,而不是标准,为客户端和服务端的交互提供一组设计原则和约束条件。
正文面向资源编程每个URL代表一种资源,URL中尽量不要用动词,要用名词,往往名词跟数据库表格相对应。
一般来说,数据库中的表都是同种记录的集合,所有API中的名词也应该使用复数。
举例来说,有一个API提供动物园(zoo)的信息,还包括各种动物和雇员的信息,则它的路径应该设计成下面这样。
123https://api.example.com/v1/zooshttps://api.example.com/v1/animalshttps://api.example.com/v1/employees
HTTP动词对于资源的具体操作类型,由HTTP动词表示。常用的HTTP动词有下面五个(括号里对应的sql命令)。
12345GET(SELECT):从服务器取出资源(一项或多项)。POST(CREATE):在服务器新建一个资源。 ...
Lua语言入门
正文123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 ...
同步-异步-串行-并行
前言在实际开发过程中很多人会因为同步,异步,串行,并行等名词搞混,搞不清楚这些名称到底代表的是什么意思。其实这也是实际开发中必须掌握一些知识点。掌握和理解这些概念也有助于我们去更好的去开发。
正文同步-异步指的是能否开启新的线程。同步不能开启新的线程,异步可以。
同步:在程序中同步指的就是顺序执行,执行完一个再执行下一个,需要等待、协调运行(代码由上而下依次执行)。
异步:异步和同步是相对的,异步就是彼此独立,在等待某事件的过程中可以继续去做自己的事情,不需要等待这一事件完成后再工作。线程就是实现异步的一个方式。异步是让调用方法的主线程不需要同步等待另一线程的完成,从而可以让主线程继续干其它的事情。
异步和多线程并不是一个同等关系,异步是最终目的,多线程只是我们实现异步的一种手段。异步是当一个调用请求发送给被调用者,而调用者不用等待其结果的返回而可以做其它的事情。实现异步可以采用多线程技术或则交给另外的进程来处理。
串行、并行:串行和并行指的是任务的执行方式。
串行:是指多个任务时,各个任务按照顺序执行,完成一个之后才能进行下一个。
并行:指的是多个任务可以同时执行。举个栗子:比如在你 ...
魔兽世界战斗系统
《魔兽世界》战斗系统数值分析:伤害公式与战斗机制
一、属性概述:
1.基础属性
生命值:最大生命值上限,受到耐力的加成
法力值:最大法力值上限,以前版本受智力加成,现在为按等级固定
力量:提高攻击强度
敏捷:提高物理暴击概率,某些职业(盗贼、猎人等)提供攻击强度
耐力:提高生命值
智力:提高法术强度和法术暴击率
精神:提高法力回复速度
2.物理输出进阶属性
伤害:即DPH,浮动值,表单次攻击伤害的高低
攻击强度:受力量、敏捷加成,可看作人物自身的攻击力
攻击速度:普通攻击的攻击速度
急速:影响攻击施法速度,急速越高攻击越快
命中率:增加命中率的百分比,抵消玩家的未命中率
暴击率:受敏捷加成,暴击可以造成2倍伤害
精准:精准可以降低对方躲闪招架你攻击的概率
3.法系输出进阶属性
法术强度:决定法术伤害的高低,主要由智力提供
急速:影响施法速度,急速越高施法越快,DOT型法术每条之间的时间越短
命中率:增加法术命中率,抵消玩家的法术未命中率
法力回复:非战斗状态下每5秒回复的法力值
战斗回复:战斗状态下 ...
Unity自定义编辑器菜单
前言自定义编辑器菜单扩展。
正文添加菜单
12345[MenuItem("Tools/MyOption")]private static void MyOption(){ // 自定义菜单Tools}
12345[MenuItem("Tools/Sub/MyOption")]private static void MyOption(){ // 子菜单}
添加系统菜单(Window)的菜单项
12345[MenuItem("Window/AAAOption")]private static void MyOption(){ // 添加系统菜单(Window)的菜单项}
添加菜单项的快捷键
% 代表 Ctrl 或 CMD# 代表 Shift& 代表 AltLEFT/RIGHT/UP/DOWN 代表方向键F1 … F2 代表功能键HOME, END, PGUP, PGDN 代表对应按键_[a-z] 代表A-Z字符
以上每项快捷键 ...
知乎卡片链接
正文模仿知乎的卡片式链接。改自兰州小红鸡我为了每次少写一行js引用略作修改。
1234567891011121314151617181920function LinkCard(){ var LinkCards=document.querySelectorAll('.LinkCard'); if (LinkCards.length==0){ return; }else{ var LinkCard=LinkCards[0]; var title=LinkCard.innerText; var link=LinkCard.href; LinkCard.innerHTML="<style type='text/css'>.LinkCard,.LinkCard:hover{text-decoration:none;border:none!important;color:inherit!important}.LinkCard{position:rela ...
Unity宏定义
前言Unity包含一个称为 Platform Dependent Compilation 的功能。这包含一些预处理器指令,可让您对脚本进行分区,以便为受支持的平台之一专门编译和执行一段代码。
你可以在Unity编辑器中运行这个代码,这样你就可以专门为你的目标平台编译代码并在编辑器中测试它!
正文宏123456789101112131415161718192021222324252627UNITY_EDITOR 编辑器调用UNITY_STANDALONE_OSX 专门为Mac OS(包括Universal,PPC和Intelarchitectures)平台的定义。UNITY_DASHBOARD_WIDGET Mac OS Dashboard widget (Mac OS仪表板小部件)。UNITY_STANDALONE_WIN Windows操作系统UNITY_STANDALONE_LINUX Linux操作系统UNITY_STANDALONE 独立的平台 (Mac,Windows或Linux)UNITY_WEBPLAYER 网页播放器 (包括Windows和Mac web播放器可执行文件 ...
暴雪战斗公式
前言想必一般玩过暴雪游戏的人,都会对暴雪游戏的平衡性赞不绝口。若是对其游戏数值有进一步研究的人,更会惊叹其战斗公式设计的如此精妙。暴雪的战斗公式已经成为一个流派,成为我们最广为熟知的一种除法型公式,影响着日后千千万万的游戏设计。
正文对于战斗公式采用除法公式这个体系,一般的游戏设计者都不会很陌生,甚至一些资深的wower都会理解一些该体系下的结论,但实际上未必多数人都能对除法公式的精髓有着深入的了解,比如让我们来看如下的这些问题,是否都有明确清晰的答案呢。
1. 除法公式下如何定义一个涵盖了角色所有属性量,并且可用来衡量其能力强弱的函数?
2. 为什么除法公式中伤害减免百分比要用这么复杂一串公式?
3. 除法公式通常的形式和一些变种的除法公式有什么关系?
4. 玩过wow的很多人认为,由于伤害减免曲线随着防御增加变化越来越平缓,所以防御这个属性的收益是逐渐递减的,这个说法是正确的么?
5. 攻击,防御,血量这些属性究竟如何影响了一个角色的能力,即不同属性提升时,角色能力如何提升?即每点属性的属性价值如何?各个属性之间的等价关系如何?
下面我们便来逐一讨论 ...
算法
前言算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。
正文算法冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸 ...
