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)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸 ...
Unity开发愤怒的小鸟
前言用最通俗易懂的方法去制作愤怒的小鸟,主要用于学习Unity的使用。
第一部分游戏的逻辑
小鸟的拖拽(最大距离限制)
小鸟的弹出
小鸟与猪头、道具的碰撞(死亡/受伤)
皮筋的绘制
制作各种特效
游戏结束,胜利的判定
一只小鸟 -> 多只的转化
胜利判定星星特效的制作
让星星一颗一颗的生成
镜头跟随
添加音效
涉及知识点:
1、屏幕坐标与世界坐标的转化2、Spring Joint 组件的使用3、碰撞检测(OnCollisionEnter2D)4、Line Renderer
Spring Joint 2D 是Unity提供的一个弹簧关节组件。
第二部分UI制作
暂停界面
关卡选择
数据存储
补充部分渲染层级:
CameraDepth 先绘制depth低的物体
同一个cameraSorting layer
同一个Sorting layerOrder in layer[大的遮挡小的]易混淆:layer
Camera: 1、clear flags:清除标记 2、culling mask:按照layer有选择性的渲染场景中的物体
to be continued…
字节跳动Android岗面试
正文网络网络协议模型应用层:负责处理特定的应用程序细节HTTP、FTP、DNS
传输层:为两台主机提供端到端的基础通信TCP、UDP
网络层:控制分组传输、路由选择等IP
链路层:操作系统设备驱动程序、网卡相关接口
TCP 和 UDP 区别TCP 连接;可靠;有序;面向字节流;速度慢;较重量;全双工;适用于文件传输、浏览器等
全双工:A 给 B 发消息的同时,B 也能给 A 发
半双工:A 给 B 发消息的同时,B 不能给 A 发
UDP 无连接;不可靠;无序;面向报文;速度快;轻量;适用于即时通讯、视频通话等
TCP 三次握手A:你能听到吗?B:我能听到,你能听到吗?A:我能听到,开始吧
A 和 B 两方都要能确保:我说的话,你能听到;你说的话,我能听到。所以需要三次握手
TCP 四次挥手A:我说完了B:我知道了,等一下,我可能还没说完B:我也说完了A:我知道了,结束吧
B 收到 A 结束的消息后 B 可能还没说完,没法立即回复结束标示,只能等说完后再告诉 A :我说完了。
POST 和 GET 区别Get 参数放在 url 中;Post 参数放在 request Bod ...